MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]串口接收不到数据 (https://www.labfans.com/bbs/showthread.php?t=2016)

slisent 2008-04-02 11:47

[求助]串口接收不到数据
 
我是用串口线连接两台计算机的
一台用来发送
一台用来接收

然后在发送端程序:
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;

结果超时的时间到了,还读不到数据,这是为什么啊?
谁帮忙看下?
谢谢了

slisent 2008-04-06 09:23

有没人知道什么错误的啊.帮忙看下呀

slisent 2008-04-09 11:58

怎么没人理会呢?

未注册 2008-04-19 11:53

1.com口定义的有问题,一般电脑上的com口只有一个是"com1",这个可以在电脑的硬件管理器里查看.
2.fclose(s);
delete(s);
clear s;
这几句不能紧接着前面数据接收和发送执行,因为,发送和接收数据需要一定的时间间隔,太快的结束对象和删除对象是不行的.
3.连接两台电脑要用交叉的串口线"NULL MODEM CABLE".

用你上面写的语句,我已经调试成功了,你再试试.

foxselina 2008-06-05 14:17

我的想法和楼上的相同,但有一点我不能明白,为何程序在执行到fprintf和fscanf时就会报错,说是在读/写过程中超时。
超时倒底是个什么概念?要设多长时间才不会超时呢?


所有时间均为北京时间。现在的时间是 05:51

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.