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

STM32H743使用USART突然发出字符‘\0’的问题

[复制链接]
啊源股 提问时间:2022-8-23 17:16 / 未解决
hi ,
   您好,希望得到帮助!
   我在调试USART的时候,写了一个while(1)等待PC端传过来的数据,收到以后回传给PC。

   开机后,PC可以正常下发字符给MCU,MCU也能正常回传数据给PC,但是静置一段时间后,PC突然收到一个字符'\0',这时候USART就无法正常工作了。

    ISR的变化规律为:
    正常收发的时候值为0x006010D0
    异常的时候值为0x006210D0
    我把ICR强制写入0XFFFFFFFF,ISR变为0x006200C0 ,但是依然无法正常工作,即使在keil点击reset,依然异常。

请教一下解决方法,谢谢!




异常恢复办法:
PC端接着串口工具,串口工具连着MCU,这时候重新给MCU上下电,PC端还是收到'\0',异常依然存在。
但是!PC端移除串口工具,MCU先断电,然后PC端接入串口工具,重新打开PC端串口软件等待接收,这时候重新给MCU上电,PC端就不会收到'\0'了,异常消除?
非常不解,串口工具是FT232,这个也能有影响吗?





收藏 评论9 发布时间:2022-8-23 17:16

举报

9个回答
啊源股 回答时间:2022-8-23 17:33:56
出现异常以后,就算硬件reset,PC端立马收到'\0'
yklstudent 回答时间:2022-8-23 22:26:02
出现问题过滤掉好了,能不能继续正常接收
啊源股 回答时间:2022-8-24 09:09:57
yklstudent 发表于 2022-8-23 22:26
出现问题过滤掉好了,能不能继续正常接收

不能,只要收到\0,后面收发都不正常了
butterflyspring 回答时间:2022-8-24 10:21:42
MCU端的时钟有没有发生变化。比如进入低功耗模式后唤醒等。 时钟发生了变化后,导致串口发送的数据就出错了。
啊源股 回答时间:2022-8-24 10:46:17
butterflyspring 发表于 2022-8-24 10:21
MCU端的时钟有没有发生变化。比如进入低功耗模式后唤醒等。 时钟发生了变化后,导致串口发送的数据就出错了 ...

怎么查时钟问题呢
啊源股 回答时间:2022-8-24 14:47:46
好像真的与IDLE有关,请问有没有办法在进入IDLE后,依然能够正常呢?或者不让进入IDLE?
啊源股 回答时间:2022-8-24 17:21:30
butterflyspring 发表于 2022-8-24 10:21
MCU端的时钟有没有发生变化。比如进入低功耗模式后唤醒等。 时钟发生了变化后,导致串口发送的数据就出错了 ...

异常的时候,IRQHandler都没有进去了
废鱼 回答时间:2022-8-25 08:31:15
换个串口监听工具试试。
啊源股 回答时间:2022-9-6 16:34:01
更换过 现象一样,总之可以持续发给PC,但是收不到PC的数据了,没有进ISR

所属标签

相似问题

官网相关资源

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