|
Tài trợ cho PIC Vietnam |
Đóng góp ý kiến Nơi tiếp nhận những ý kiến đóng góp của thành viên |
|
Ðiều Chỉnh | Xếp Bài |
13-04-2007, 08:05 PM | #1 |
PIC Bang chủ
|
Cách trình bày một bài viết!!!!
Anh Bắc cho em hỏi 1 tí:
Trong file Rs232 Comunication.m phần function RS232_Communication_OpeningFcn(hObject, eventdata, handles, varargin) có 2 dòng lệnh: handles.output = hObject; và guidata(hObject, handles); có tác dụng gì vậy anh? Nếu không có 2 dòng này thì chương trình ko chạy dc. ---handles.status_com = IsConnect; dòng này là để đưa ra tình trạng cổng Com là chưa nối hả anh? phần status_com là của cái nào thế anh? em đọc trong help có nói nếu khai báo s = serial('COM1'); thì s.status là tình trạng cổng Com open hay close , còn status_com này thì em chưa hiểu , nó là tag nào của phần tử nào trong file *.fig vậy anh? ---guidata(hObject,handles); dòng này để lưu lại biến handles hả anh ? có tác dụng như thế nào vậy anh? --- function button_Send_Callback(hObject, eventdata, handles) trong phần này nè anh : IsConnect = handles.status_com; s = handles.com; là thế nào vậy anh ? sao file *.m này biết rõ tag com là của ai? em đâu có thấy anh khai báo đối tượng nào là com đâu . Chẳng lẽ nó ngầm hiểu là cổng Com luôn hả anh? ---function button_Send_Callback(hObject, eventdata, handles) strTX = get(handles.edit_TX,'String'); fprintf(s,strTX); vậy là anh truyền chuỗi hả anh , và 1 byte hả anh? handles.com = s; guidata(hObject,handles); 2 dòng này đẻ làm gì vậy anh?biến s là biến toàn cục nên ta lưu giá trị của nó lại cho các function khác dùng hả anh? -- function button_Connect_Callback(hObject, eventdata, handles) s = serial(get_stringPopup(handles.popup_ComPort)); nếu s là toàn cục vậy tại sao ở function nút Connect dc bấm lại có khai báo s như thế này chi vậy anh ? chọn lại s là 1 trong các cổng Com hả anh? vậy biến s khai báo ở mấy hàm khác chi vậy anh? --- s.BytesAvailableFcn = @BytesAvailable_Callback; s.OutputEmptyFcn = @OutputEmpty_Callback; s.BreakInterruptFcn = @BreakInterrupt_Callback; s.ErrorFcn = @Error_Callback; s.PinStatusFcn = @PinStatus_Callback; s.BreakInterruptFcn = @BreakInterrupt_Callback; s.TimerFcn = @Timer_Callback; phần này để chi vậy anh , có dấu @ để làm gì vậy anh? em chỉ thấy anh ghi code cho bytesAvailable_callback như sau: global hand; ind = fscanf(obj); set(hand.edit_RX,'String',ind); biến ind ở đây là đọc giá trị đưa vào hả anh? --- s.RecordName = get(handles.edit_RecordName,'String');s s.RecordMode = 'index'; tại sao chúng ta phải có phần record này vậy anh? --- function figure1_DeleteFcn(hObject, eventdata, handles) IsConnect = handles.status_com; if (IsConnect == 1), s = handles.com; record(s,'off') fclose(s); delete(s); clear s; IsConnect = 0; end delete(hObject); còn function deletefcn có tác dụng gì vậy anh? ---function figure1_CloseRequestFcn(hObject, eventdata, handles) IsConnect = handles.status_com; if (IsConnect == 1), s = handles.com; record(s,'off'); fclose(s); delete(s); clear s; IsConnect = 0; end delete(hObject); function này có tác dụng gì vậy anh? --- s.BytesAvailableFcnCount = 1; s.BytesAvailableFcnMode = 'terminator'; ở đây anh chỉ truyền 1 byte theo kiểu ASCII thôi hả anh? muốn 3 byte mình chỉ thay đổi s.BytesAvailableFcnCount = 3; là được hả anh? Em thấy trong phần Simulink có hỗ trợ RS 232 luôn , sao lấy ở đó hỗ trợ được không anh? Em mới làm quen với Matlab và giao tiếp cồng Com , xin anh chỉ giáo ạ (^_^)
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
|
|