你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103长时间运行,串口发送失败

[复制链接]
qintian0303 提问时间:2025-7-11 14:56 / 已解决

STM32F103长时间运行,串口发送失败,目前定位到一致卡在USART_FLAG_TC判断那里,我们采用轮询的方式发送数据,然后判断USART_FLAG_TC是否发送成功,在大量发送后出现了一次发送后USART_FLAG_TC没有置位,然后就一直卡在这里了,这可如何是好?

收藏 评论7 发布时间:2025-7-11 14:56

举报

7个回答
butterflyspring 最优答案 回答时间:2025-7-11 16:25:27
如果单纯从软件方面考虑话,可以加一个超时判断。 发现错误就丢弃这一帧。当然,这需要协议保障。

种花家刘氓兔 回答时间:2025-7-11 16:28:22

定时喂狗?当USART_FLAG_TC置位后喂狗成功 超时不喂直接重启

qintian0303 回答时间:2025-7-12 12:42:37

butterflyspring 发表于 2025-7-11 16:25
如果单纯从软件方面考虑话,可以加一个超时判断。 发现错误就丢弃这一帧。当然,这需要协议保障。</p>
<p>...

嗯,目前只能这样,这个时间还不太好确定,太长会影响正常的连续性,太短会每次都就如,感觉字节与字节大发送间隔是ms级别的

qintian0303 回答时间:2025-7-12 12:43:25

种花家刘氓兔 发表于 2025-7-11 16:28
定时喂狗?当USART_FLAG_TC置位后喂狗成功 超时不喂直接重启

我其实不喜欢用看门狗,直接重启的系统应用的连贯性损失太大

HyunYong 回答时间:2025-7-13 12:53:37

如果对串口发送的实时性要求不高 可以加一个error判断 进入error后打断此次循环/函数

但是这只是一个保险措施 还要找找其他原因,这个方案只能说是躲开了问题 但是没有解决

可以看一下是不是其他程序干扰到了 一点点把程序屏蔽掉

qintian0303 回答时间:2025-7-14 11:54:07

HyunYong 发表于 2025-7-13 12:53
如果对串口发送的实时性要求不高 可以加一个error判断 进入error后打断此次循环/函数</p>
<p>但是这只是一个 ...

[md]这不现实啊,程序太多了,只能加个超时机制了

HyunYong 回答时间:2025-7-14 14:22:49

qintian0303 发表于 2025-7-14 11:54
这不现实啊,程序太多了,只能加个超时机制了

能接受其实也没问题,下次设计的时候预留那个error接口

这样就算有问题也可以计时处理

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版