![]()  | 
	
		
 [求助]串口接收不到数据 
		
		
		我是用串口线连接两台计算机的 
	一台用来发送 一台用来接收 然后在发送端程序: 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; 结果超时的时间到了,还读不到数据,这是为什么啊? 谁帮忙看下? 谢谢了  | 
		
 有没人知道什么错误的啊.帮忙看下呀 
	 | 
		
 怎么没人理会呢? 
	 | 
		
 1.com口定义的有问题,一般电脑上的com口只有一个是"com1",这个可以在电脑的硬件管理器里查看. 
	2.fclose(s); delete(s); clear s; 这几句不能紧接着前面数据接收和发送执行,因为,发送和接收数据需要一定的时间间隔,太快的结束对象和删除对象是不行的. 3.连接两台电脑要用交叉的串口线"NULL MODEM CABLE". 用你上面写的语句,我已经调试成功了,你再试试.  | 
		
 我的想法和楼上的相同,但有一点我不能明白,为何程序在执行到fprintf和fscanf时就会报错,说是在读/写过程中超时。 
	超时倒底是个什么概念?要设多长时间才不会超时呢?  | 
| 所有时间均为北京时间。现在的时间是 15:42。 | 
	Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.