打印
[研电赛技术支持]

GD32F407串口空闲中断只能正确触发一次

[复制链接]
1903|48
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小瓦力|  楼主 | 2024-12-19 21:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ST的工程在ST芯片下串口空闲中断配合DMA使用,空闲中断能正确触发,同个代码下载到GD32后空闲中断只能首次正确触发一次,后续都是一帧数据的第一个字节就触发了,在第二次空闲中断开始去读DR寄存器时发现是首字节,尝试清除各种状态及重新初始化都不正常,不知道大家有没有遇到过

使用特权

评论回复
沙发
stormwind123| | 2024-12-26 11:21 | 只看该作者
中断标志位未正确清除

使用特权

评论回复
板凳
elephant00| | 2024-12-26 11:29 | 只看该作者
检查串口硬件的连接是否牢固

使用特权

评论回复
地板
duo点| | 2024-12-26 11:29 | 只看该作者
更新软件或固件至最新版本

使用特权

评论回复
5
duo点| | 2024-12-26 11:30 | 只看该作者
建议联系技术支持

使用特权

评论回复
6
两只袜子| | 2024-12-26 14:00 | 只看该作者
串口硬件可能存在故障或连接问题,导致空闲中断无法被正确触发。

使用特权

评论回复
7
cr315| | 2024-12-26 14:59 | 只看该作者
检查并清除中断标志位

使用特权

评论回复
8
classroom| | 2024-12-26 16:00 | 只看该作者
串口的配置参数(如波特率、数据位、停止位等)可能不正确

使用特权

评论回复
9
jcky001| | 2024-12-26 19:00 | 只看该作者
MCU的软件或固件可能存在bug或缺

使用特权

评论回复
10
Amazingxixixi| | 2024-12-27 14:52 | 只看该作者
好想需要读一次就自动清除还是怎么回事,手册上有说

使用特权

评论回复
11
小瓦力|  楼主 | 2025-1-2 16:07 | 只看该作者
stormwind123 发表于 2024-12-26 11:21
中断标志位未正确清除

哪个标志位呢?我尝试过清除串口的相关标志,也读取了DR寄存器,重新设置DMA缓存并重新使能了DMA,比较奇怪的是ST平台下运行正常,所以不知道GD的哪里有区别需要去修改

使用特权

评论回复
12
小瓦力|  楼主 | 2025-1-2 16:11 | 只看该作者
jcky001 发表于 2024-12-26 19:00
MCU的软件或固件可能存在bug或缺

在STM32下正常,GD的就不正常,所以不知道GD哪里有不一样的地方,代码可能性比较低,目前现象来说是串口空闲中断触发的时机不对,首字节就触发了

使用特权

评论回复
13
sheflynn| | 2025-1-4 08:15 | 只看该作者
在使用GD32F407的串口空闲中断时,如果出现空闲中断只能正确触发一次的问题,通常是由于空闲中断标志位没有被正确清除导致的。

使用特权

评论回复
14
sesefadou| | 2025-1-5 09:22 | 只看该作者
在某些MCU中,读取数据寄存器(DR)的动作可能会自动清除空闲中断标志位。

使用特权

评论回复
15
sdCAD| | 2025-1-5 10:16 | 只看该作者
中断服务函数逻辑问题              

使用特权

评论回复
16
olivem55arlowe| | 2025-1-5 10:51 | 只看该作者
合理设置接收缓存大小,确保能够容纳足够的接收数据。同时,在中断服务程序中及时处理接收的数据,避免缓存溢出。

使用特权

评论回复
17
jtracy3| | 2025-1-5 11:42 | 只看该作者
硬件连接问题也可能导致空闲中断无法正确触发

使用特权

评论回复
18
maudlu| | 2025-1-5 12:16 | 只看该作者
如果使用DMA进行数据接收,确保DMA配置正确,并且在空闲中断中正确处理DMA接收的数据。

使用特权

评论回复
19
earlmax| | 2025-1-5 14:20 | 只看该作者
如果数据处理逻辑不正确,可能会导致空闲中断在处理完一帧数据后无法正确重新开启。

使用特权

评论回复
20
gygp| | 2025-1-5 15:38 | 只看该作者
接触不良或者线路干扰,可能会影响空闲中断的正常触发。

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝