用台式电脑COM口(9针公头)连接F429传输文件(1M以上的文件)会不间断触发串口空闲中断,而采用USB转串口线传输文件却是等文件发完才触发一次串口空闲中断。程序很简单,有需要的可以下载进行验证。
程序是根据原子哥的串口例程改的,串口1作为调试串口,串口2作为接收空闲中断测试口。
用台式电脑COM口(9针公头)连接F429传输文件会不间断触发串口空闲中断:现象是当往串口2发文件时,串口1不间断打印串口2空闲中断的UsartReceive_IDLE !!
采用USB转串口线传输文件却是等文件发完才触发一次串口空闲中断:重复上面的操作,当串口2文件传输完成,等文件发送完毕,串口1才打印一句UsartReceive_IDLE !!
用的串口工具“XCOM”;
其中用到的线是
DB9九针串口线(公对母)
串口转232串口
测试串口空闲中断_F4平台.rar
(7.05 MB, 下载次数: 147)
2017-12-18 16:29 上传
点击文件名下载附件
重新测试了一下,台式电脑传文件采用波特率9600,57600,115200,发现9600波特率现象跟USB转串口现象一样,不过57600和115200会有不间断触发串口空闲中断现象。
还有USB转串口波特率为57600和115200传文件都不会出现像电脑串口出来的现象。
ST的串口空闲中断设计的比较死,也就是只有一个字符的空隙,就认为是空闲了,这种在RS232传输的时候,可能信号延迟,就导致了这个问题。
你可以试试,115200,传输数据,不用空闲中断,看看是否有丢失,如果没有丢失,说明不是串口本身的问题,而是传输的延时问题。
原子大大说得比较有道理,信号延迟具体的原因是什么导致的,就想分析是硬件原因还是串口线的原因还是台式电脑自带COM自身的原因,很想分析出是什么原因。
115200传输数据用空闲中断也是没问题的,就是传输文件会有问题,传输文件不是一开始传输就有问题的,而是传着传着,就会频繁触发空闲中断。
一周热门 更多>