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

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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版