Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-04-02
年龄: 40
帖子: 9
声望力: 0 ![]() |
![]()
我是用串口线连接两台计算机的
一台用来发送 一台用来接收 然后在发送端程序: clear; s=serial('com2','baudrate',1200); s.Parity='none' ; % Set parity as none s.Databits=8 ; % set the number of data bits s.StopBits=1; % set number of stop bits as 1 s.InputBufferSize=512; s.Timeout=5; s.Terminator='LF'; s.FlowControl='none'; s.OutputBufferSize=512; fopen(s); s.status; fprintf(s,'abc','async'); fclose(s); delete(s); clear s; 接收端程序: clear; s=serial('com2','baudrate',1200); s.Parity='none' ; % Set parity as none s.Databits=8 ; % set the number of data bits s.StopBits=1; % set number of stop bits as 1 s.InputBufferSize=512; s.Timeout=5; s.Terminator='LF'; s.FlowControl='none'; s.OutputBufferSize=512; fopen(s); s.status; a=fscanf(s); fclose(s); delete(s); clear s; 结果超时的时间到了,还读不到数据,这是为什么啊? 谁帮忙看下? 谢谢了
__________________
荼毒的红,是幸福的颜色. |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-04-02
年龄: 40
帖子: 9
声望力: 0 ![]() |
![]()
有没人知道什么错误的啊.帮忙看下呀
__________________
荼毒的红,是幸福的颜色. |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-04-02
年龄: 40
帖子: 9
声望力: 0 ![]() |
![]()
怎么没人理会呢?
__________________
荼毒的红,是幸福的颜色. |
![]() |
![]() |
![]() |
#4 |
游客
帖子: n/a
|
![]()
1.com口定义的有问题,一般电脑上的com口只有一个是"com1",这个可以在电脑的硬件管理器里查看.
2.fclose(s); delete(s); clear s; 这几句不能紧接着前面数据接收和发送执行,因为,发送和接收数据需要一定的时间间隔,太快的结束对象和删除对象是不行的. 3.连接两台电脑要用交叉的串口线"NULL MODEM CABLE". 用你上面写的语句,我已经调试成功了,你再试试. |
![]() |
![]() |
#5 |
初级会员
注册日期: 2008-05-23
年龄: 42
帖子: 9
声望力: 0 ![]() |
![]()
我的想法和楼上的相同,但有一点我不能明白,为何程序在执行到fprintf和fscanf时就会报错,说是在读/写过程中超时。
超时倒底是个什么概念?要设多长时间才不会超时呢?
__________________
FATE? HAH! YOU ARE MINE.... |
![]() |
![]() |