Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
普通会员
注册日期: 2007-04-23
年龄: 40
帖子: 56
声望力: 22 ![]() ![]() |
![]()
RT。
最近正在学习这方面的东西。需要一个程序学习一下!!哪位大哥有帮忙介绍一下!!十分感谢了!!! ![]() 下面是编写的一个 串口接受的程序,但是却不能完成接收的功能。个人认为是不时 receivedata这个函数的调用时出错了!! 那位高手帮忙解决一下!! %首先检验是打开串口操作还是关闭操作 %打开操作 if(strcmp(get(hObject,'string') , 'Open Serial Port')) %建立一个serial object,并设置其参数(接收的终止符号为\n) try handles.serial = serial(handles.com,'BaudRate',handles.baud_rate,'DataBits',handles.dataBits,... 'Parity',handles.verifiedBits,'StopBits',handles.stopBit,'FlowControl',... handles.flowControl,'terminator',char(13)); set(handles.serial,'OutputBufferSize',512000); set(handles.serial,'InputBufferSize',512000); handles.serial.BytesAvailableFcnMode = 'terminator'; %当接受到数据后如果碰到结束符\n就读入,调用receiveData函数 handles.serial.BytesAvailableFcn={'receiveData',handles}; guidata(hObject,handles); %打开串口 fopen(handles.serial); set(hObject,'String','Close Serial Port','foreGroundColor',[67/255,64/255,119/255]); str = ['Serial Port ', handles.com , ' opened sucessfully!']; set(handles.text3,'String',str,'fontweight','bold'); set(handles.pushbutton4,'enable','on'); set(handles.pushbutton5,'enable','on'); set(handles.pushbutton6,'enable','on'); catch %进行出错处理 errmsg = lasterr; errordlg([errmsg,char(10),' Can''t Open Serial Port : ',handles.com, char(10),' Please choose another Port!'],'Serial Port Open Error'); rethrow(lasterror); end %关闭串口操作 else fclose(handles.serial); set(hObject,'String','Open Serial Port','foreGroundColor',[1,0,0.5]); str = ['Serial Port ', handles.com , ' closed sucessfully!']; set(handles.text3,'String',str,'fontweight','bold'); set(handles.pushbutton4,'enable','off'); set(handles.pushbutton5,'enable','off'); set(handles.pushbutton6,'enable','off'); end |
![]() |
![]() |