[STM32F1] STM32F103ZE串口通信问题:接收端死机原因分析

[复制链接]
1486|11
 楼主| 9dome猫 发表于 2024-4-18 19:49 | 显示全部楼层 |阅读模式
STM32F103ZE上进行串口通信调试,发现发送数据时接收端容易导致系统死机。我想知道是什么原因导致了这种异常情况,以及如何避免类似情况的发生。

呐咯密密 发表于 2024-4-19 14:45 | 显示全部楼层
接收端的代码处理有问题
故意相遇 发表于 2024-5-19 23:11 | 显示全部楼层
如果发送数据的速度超过了接收端处理数据的速度,接收端的接收缓冲区可能会溢出,导致系统死机
白马过平川 发表于 2024-5-20 02:00 | 显示全部楼层
在STM32中,串口通信通常使用中断来处理接收和发送数据。如果中断优先级设置不当,可能会导致优先级反转或死锁等问题,从而导致系统死机
风凉 发表于 2024-5-20 04:00 | 显示全部楼层
如果系统的电源供应不稳定或电源噪声较大,可能会导致串口通信异常,甚至导致系统死机。
捧一束彼岸花 发表于 2024-5-20 08:00 | 显示全部楼层
可以检查中断优先级设置是否正确,并确保接收和发送中断的优先级适当。
未说出口的像你 发表于 2024-5-20 12:00 | 显示全部楼层
仿真看看?看程序咋执行的吧
我吃小朋友 发表于 2024-5-20 16:00 | 显示全部楼层
建议检查电源供应是否稳定,并采取适当的电源滤波和隔离措施,以确保电源质量
一只眠羊 发表于 2024-5-20 18:00 | 显示全部楼层
你要避免的话,建议优化代码,确保串口通信的代码逻辑正确,避免死循环、死锁等问题。同时,合理使用缓冲区,避免缓冲区溢出。
在曼谷的春 发表于 2024-5-20 22:00 | 显示全部楼层
其实根据系统需求和硬件资源,合理设置串口接收和发送中断的优先级,避免优先级冲突和死锁。
月亮一键变蓝 发表于 2024-5-21 01:00 | 显示全部楼层
如果可能,可以考虑使用硬件流控制(如RTS/CTS)或软件流控制来控制发送速率,以避免缓冲区溢出。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

142

主题

1593

帖子

2

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