主题:求助,串口读不到数据
slisent
[专家分:0] 发布于 2008-03-24 14:12:00
我是用串口线连接两台计算机的
一台用来发送
一台用来接收
然后在发送端程序:
clear;
s=serial('com2','baudrate',2400);
fopen(s);
fprintf(s,'abc','async');
fclose(s);
delete(s);
clear s;
接收端程序:
clear;
s=serial('com2','baudrate',2400);
fopen(s);
a=fscanf(s);
fclose(s);
delete(s);
clear s;
结果超时的时间到了,还读不到数据,这是为什么啊?
谁帮忙看下?
谢谢了
回复列表 (共5个回复)
沙发
slisent [专家分:0] 发布于 2008-03-26 10:40:00
么人知道么?
谁懂一点点的啊,帮忙下吧~
板凳
gzqfast [专家分:0] 发布于 2008-03-27 17:41:00
我估计是时间的问题
写入是有一定时间的~~~
你可以用设定写入和读出数据个数的方法来试一下
~~~
3 楼
slisent [专家分:0] 发布于 2008-04-01 12:44:00
[quote]
我估计是时间的问题
写入是有一定时间的~~~
你可以用设定写入和读出数据个数的方法来试一下
~~~[/quote]
怎么试?
我写入时间有改变,就是设置为0.5S,5S和10S的 都不可以.
都是一样的错误.[em10]
4 楼
gzqfast [专家分:0] 发布于 2008-04-02 10:32:00
clear,close all;
n=0:100;f1=300;f2=800;num=4192;
fs=4000;
s1=64*sin(2*pi*f1/fs*n);
s3=64*sin(2*pi*f2/fs*n);
signal=s1+s3+128;
A=round(signal/2);
L=length(A);
s=serial('COM1'); %创建COM1串口对象,并以s标识它
s.parity='even';%设置校验方式为偶校验
s.StopBits=1;%设置停止位为1位
s.BaudRate=9600; %波特率为9600b/s
s.InputBuffersize=1024;%设置输入缓冲区大小为256字节,缺省值为512字节
s.OutputBufferSize = 1024;%输出缓冲区为256B,缺省值为512B
s.ReadAsyncMode ='continuous';% 在异步通信模式方式下, 读取串口数据采用连续接收数据(continuous)的缺省方式,那么下位机返回的数据会自动存入缓存区
fopen(s);%打开串口
B=[10 85 L];
fprintf(s,B);%发射请求单片机接收数据的握手信号以及请求接收数据数量
% hold time(5);
fprintf(s,A);%向串口发送数据
M=input('如果需要接收卷积结果请输入:1\n');
if M==1
C=[10 119 L];
fprintf(s,'%s',C);%发射请求单片机发送数据的握手信号以及请求发送数据数量
% hold time(5);
yn=fread(s,L,'uint8');
end
fclose(s);
delete(s);
clear s;
这是我调试通过的
5 楼
slisent [专家分:0] 发布于 2008-04-09 10:29:00
这是发送的程序么?
那不是还要在接收端编写程序么?
我来回复