Em dùng đoạn code dưới đây để xuất và đọc dữ liệu từ cổng com:
s = serial('COM1');
s.baudrate = 9600;
s.DataBits = 8;
s.Parity = 'none';
s.StopBit = 1;
s.ReadAsyncMode = 'continuous';
s.BytesAvailableFcnCount = 1;
s.Terminator = 'LF';
s.BytesAvailableFcnMode = 'terminator';
fopen(s);
fwrite(s,255);
n = fread(s,1);
if (n == 255)
set(handles.thketnoi,'String','ket noi thanh cong');
set(handles.ComPort,'Enable','off');
set(handles.chedo,'Enable','off');
set(handles.dieukhien,'Enable','on');
else
set(handles.ketnoi,'Enable','on');
set(handles.thketnoi,'String','Loi, kiem tra lai cong COM');
end
fclose(s);
Khi chạy thì chương trình xuất dữ liệu ra nhanh nhưng đọc dữ liệu vào thì rất chậm (khoảng 2s) và xuất hiện cảnh báo "Warning: The specified amount of data was not returned within the Timeout period."
Mong các pro chỉ giúp đây là lỗi gì? và khắc phục như thế nào... chân thành cảm ơn...!
s = serial('COM1');
s.baudrate = 9600;
s.DataBits = 8;
s.Parity = 'none';
s.StopBit = 1;
s.ReadAsyncMode = 'continuous';
s.BytesAvailableFcnCount = 1;
s.Terminator = 'LF';
s.BytesAvailableFcnMode = 'terminator';
fopen(s);
fwrite(s,255);
n = fread(s,1);
if (n == 255)
set(handles.thketnoi,'String','ket noi thanh cong');
set(handles.ComPort,'Enable','off');
set(handles.chedo,'Enable','off');
set(handles.dieukhien,'Enable','on');
else
set(handles.ketnoi,'Enable','on');
set(handles.thketnoi,'String','Loi, kiem tra lai cong COM');
end
fclose(s);
Khi chạy thì chương trình xuất dữ liệu ra nhanh nhưng đọc dữ liệu vào thì rất chậm (khoảng 2s) và xuất hiện cảnh báo "Warning: The specified amount of data was not returned within the Timeout period."
Mong các pro chỉ giúp đây là lỗi gì? và khắc phục như thế nào... chân thành cảm ơn...!