[STM32F4] UART接收中断当字符超过一个时,就出错

[复制链接]
1392|35
 楼主| 柴库柴库 发表于 2025-7-1 09:08 | 显示全部楼层 |阅读模式
本帖最后由 柴库柴库 于 2025-7-28 11:08 编辑

在STM32F401RE板上使用STM32Cube IDE中的HAL库已经实现了UART接收中断。接受一个字符时正常接受,当字符超过一个时,就出错,无法处理。

这种情况如何处理呢?
jobszheng 发表于 2025-7-1 09:37 | 显示全部楼层
自己写一份串口接收中断吧
qintian0303 发表于 2025-7-1 11:10 | 显示全部楼层
通过断点看一下接受的数据过程,看一看是不是接受数组有问题,这个出错是什么错误啊
probedog 发表于 2025-7-1 16:05 | 显示全部楼层
接收缓冲区溢出导致的?
elephant00 发表于 2025-7-1 16:09 | 显示全部楼层
RTS/CTS误启用?
duo点 发表于 2025-7-1 16:56 | 显示全部楼层
启用全局中断,波特率、数据位、停止位要与发送端一致。禁用硬件流控
classroom 发表于 2025-7-1 17:05 | 显示全部楼层
估计是缓冲区未正确初始化或大小不足。
flycamelaaa 发表于 2025-7-1 18:06 | 显示全部楼层
中断标志未清除?手动清除USART_SR_RXNE标志。
onlycook 发表于 2025-7-1 18:42 | 显示全部楼层
检查UART中断优先级是否合理。
powerantone 发表于 2025-7-1 19:07 | 显示全部楼层
中断使能或者是禁用逻辑错误吧。。
stormwind123 发表于 2025-7-1 20:07 | 显示全部楼层
HAL_UART_RxCpltCallback未被调用或处理逻辑错误?
jcky001 发表于 2025-7-1 21:08 | 显示全部楼层
是否用了HAL提供的环形缓冲区机制?
cr315 发表于 2025-7-1 23:00 | 显示全部楼层
波特率不匹配?
wangdezhi 发表于 2025-7-3 16:28 | 显示全部楼层
新数据到来时前一个字符未处理完毕
olivem55arlowe 发表于 2025-7-3 17:39 | 显示全部楼层
检查并正确配置UART参数              
usysm 发表于 2025-7-3 18:36 | 显示全部楼层
环形缓冲区实现错误              
macpherson 发表于 2025-7-4 09:28 | 显示全部楼层
如果其他高优先级中断频繁触发,可能会打断当前的UART接收中断处理
robincotton 发表于 2025-7-4 13:13 | 显示全部楼层
正确清空中断标志。              
abotomson 发表于 2025-7-4 13:57 | 显示全部楼层
缓冲区可能不够大,导致溢出。              
mikewalpole 发表于 2025-7-4 14:52 | 显示全部楼层
中断处理函数没有正确处理接收到的每个字符
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

80

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部