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 |
![]() |
![]() |
![]() |
#2 |
普通会员
注册日期: 2007-04-23
年龄: 40
帖子: 56
声望力: 22 ![]() ![]() |
![]()
如果有好的建议,可以给我发短信。我会将全部的程序给你,一遍一起解决!!!
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-05-23
年龄: 42
帖子: 9
声望力: 0 ![]() |
![]()
在发送的时候依然会有:
??? Error using ==> serial.fprintf A timeout occurred during the write operation. 这样的错误提示,实在不知道是什么没有写完就到了传输时间。
__________________
FATE? HAH! YOU ARE MINE.... |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2008-10-19
年龄: 47
帖子: 3
声望力: 0 ![]() |
![]()
正在找这方面资料,学习了
|
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2009-03-27
年龄: 39
帖子: 1
声望力: 0 ![]() |
![]()
这个程序我倒是有了,请问原创是你吗?
我也碰到类似的问题,我觉得这里根本就没有调用到函数receivedata。我采用按钮进行接收,是可以接收到和显示数据的。但是估计以后接收实时数据时就只能采用中断方式了。不知道你现在问题解决没。 我的邮箱[email protected],有时间可以交流一下 |
![]() |
![]() |
![]() |
#6 |
初级会员
注册日期: 2010-08-25
年龄: 38
帖子: 1
声望力: 0 ![]() |
![]()
我也正在学,谢谢楼主了。
|
![]() |
![]() |