关于STM32串口空闲中断的问题?这是芯片的bug吗?求解

2019-07-20 03:27发布

用台式电脑COM口(9针公头)连接F429传输文件(1M以上的文件)会不间断触发串口空闲中断,而采用USB转串口线传输文件却是等文件发完才触发一次串口空闲中断。程序很简单,有需要的可以下载进行验证。
程序是根据原子哥的串口例程改的,串口1作为调试串口,串口2作为接收空闲中断测试口。
用台式电脑COM口(9针公头)连接F429传输文件会不间断触发串口空闲中断:现象是当往串口2发文件时,串口1不间断打印串口2空闲中断的UsartReceive_IDLE !!
采用USB转串口线传输文件却是等文件发完才触发一次串口空闲中断:重复上面的操作,当串口2文件传输完成,等文件发送完毕,串口1才打印一句UsartReceive_IDLE !!
用的串口工具“XCOM”;
其中用到的线是
QQ图片20171218162326.png


DB9九针串口线(公对母) QQ截图20171218162354.jpg
串口转232串口
测试串口空闲中断_F4平台.rar (7.05 MB, 下载次数: 147) 2017-12-18 16:29 上传 点击文件名下载附件

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
不玩恒心
1楼-- · 2019-07-20 20:10
操作系统 发表于 2017-12-18 18:21
USB速度和波特率 没有关系了.也就是说,USB转TTL串口的,波特率可以任意设置. 台式电脑本身带的串口只是能960 ...

重新测试了一下,台式电脑传文件采用波特率9600,57600,115200,发现9600波特率现象跟USB转串口现象一样,不过57600和115200会有不间断触发串口空闲中断现象。
还有USB转串口波特率为57600和115200传文件都不会出现像电脑串口出来的现象。
正点原子
2楼-- · 2019-07-20 21:31
不玩恒心 发表于 2017-12-18 20:48
重新测试了一下,台式电脑传文件采用波特率9600,57600,115200,发现9600波特率现象跟USB转串口现象一 ...

ST的串口空闲中断设计的比较死,也就是只有一个字符的空隙,就认为是空闲了,这种在RS232传输的时候,可能信号延迟,就导致了这个问题。

你可以试试,115200,传输数据,不用空闲中断,看看是否有丢失,如果没有丢失,说明不是串口本身的问题,而是传输的延时问题。
操作系统
3楼-- · 2019-07-21 01:58
 精彩回答 2  元偷偷看……
不玩恒心
4楼-- · 2019-07-21 05:02
正点原子 发表于 2017-12-18 23:57
ST的串口空闲中断设计的比较死,也就是只有一个字符的空隙,就认为是空闲了,这种在RS232传输的时候,可 ...

原子大大说得比较有道理,信号延迟具体的原因是什么导致的,就想分析是硬件原因还是串口线的原因还是台式电脑自带COM自身的原因,很想分析出是什么原因。
115200传输数据用空闲中断也是没问题的,就是传输文件会有问题,传输文件不是一开始传输就有问题的,而是传着传着,就会频繁触发空闲中断。
不玩恒心
5楼-- · 2019-07-21 09:59
 精彩回答 2  元偷偷看……
操作系统
6楼-- · 2019-07-21 12:31
 精彩回答 2  元偷偷看……

一周热门 更多>