打印
[AT32F407]

[at32f407]串口空闲中断多次触发的问题

[复制链接]
2496|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
13728885036|  楼主 | 2024-9-9 18:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 13728885036 于 2024-9-9 18:59 编辑

我现在用的是官方提供的freertos+lwip的工程模板,但是开启串口空闲中断时,每发送1帧数据,空闲中断会被触发很多次,而接收中断触发次数是正常的,取决于1帧个字节,现在测了官方的两个模板,只测了串口1和串口2,sc0082那个会触发多次,sc0104是正常的,我用官方开发板和自己打的硬件板子测过都是这种情况,主要我现在的代码用的是sc0082那个工程不想换份工程重新移植了,现在不能正常使用串口空闲中断,有没有官方人员测一下看看是什么原因?
左边是代码,右边是调试结果,每帧数据3字节共发2帧,上面不正常下面是正常的,我想知道工程改过什么吗?


使用特权

评论回复
沙发
tanleitanlei| | 2024-9-10 09:34 | 只看该作者
按照图中代码,测试没有复现到问题。可以看看串口的RX上会不会有干扰信号?或者可将你能复现问题的代码发出,我们再看能不能复现

使用特权

评论回复
板凳
13728885036|  楼主 | 2024-9-10 09:52 | 只看该作者
这份工程,你测测看,麻烦了

at32f407_freertos.zip

5.75 MB

使用特权

评论回复
地板
tanleitanlei| | 2024-9-10 12:56 | 只看该作者
13728885036 发表于 2024-9-10 09:52
这份工程,你测测看,麻烦了

此sample code的库函数版本比较旧,usart_flag_clear函数清除IDLE标志位序列不是很完善,正确清除顺序是读STS,再读DT。请使用新版本BSP库文件可解决此问题。

使用特权

评论回复
5
我喜欢打游戏| | 2024-9-10 15:30 | 只看该作者
清除空闲中断标志位还是遵循使用寄存器的方式读STS和DT。库函数在好几个平台都有这个问题,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

15

帖子

0

粉丝