打印
[其他ST产品]

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

[复制链接]
906|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
powerantone|  楼主 | 2022-9-13 09:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  我在调试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,这个也能有影响吗?

使用特权

评论回复
沙发
elephant00| | 2022-9-13 09:46 | 只看该作者

换个串口监听工具试试。

使用特权

评论回复
板凳
V853| | 2022-9-13 13:27 | 只看该作者
从恢复异常的方法来看,MCU断电了但是串口工具没有断电,所以串口工具还在给MCU供电。

使用特权

评论回复
地板
V853| | 2022-9-13 13:29 | 只看该作者
正常来说reset之后,异常都会结束,但是你这reset完之后异常还在,我觉得可能是串口工具的问题,换个串口工具试试。

使用特权

评论回复
5
V853| | 2022-9-13 13:32 | 只看该作者
或者还有一种解决办法,就是别用串口工具,将RXD和TXD直接连接到其他单片机上,出现异常的时候复位接收的那个单片机,看看异常能否恢复。

使用特权

评论回复
6
Bowclad| | 2022-9-13 20:05 | 只看该作者
换一个串口工具试试

使用特权

评论回复
7
Henryko| | 2022-9-13 20:48 | 只看该作者
换个串口工具

使用特权

评论回复
8
zhxzhxzzhhxx| | 2022-9-13 23:11 | 只看该作者
别用FT232,这个片子波特率会不准。

使用特权

评论回复
9
jcky001| | 2022-9-14 09:00 | 只看该作者
出现问题过滤掉好了,能不能继续正常接收

使用特权

评论回复
10
cr315| | 2022-9-14 09:00 | 只看该作者
好像真的与IDLE有关,请问有没有办法在进入IDLE后,依然能够正常呢?或者不让进入IDLE?

使用特权

评论回复
11
两只袜子| | 2022-9-14 09:00 | 只看该作者
出现异常以后,就算硬件reset,PC端立马收到'\0'

使用特权

评论回复
12
jcky001| | 2022-9-15 09:00 | 只看该作者
MCU端的时钟有没有发生变化。比如进入低功耗模式后唤醒等。 时钟发生了变化后,导致串口发送的数据就出错了。

使用特权

评论回复
13
七毛钱| | 2022-9-15 09:00 | 只看该作者
更换过 现象一样,总之可以持续发给PC,但是收不到PC的数据了,没有进ISR

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

558

主题

2431

帖子

4

粉丝