• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32的usart总是在接收时多收到一个0x00

e80bb0aeef990918 2019-04-07 浏览量:3822
stm32的usart总是在接收时多收到一个0x00
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 我也碰到过,上电的时候会主动发一个0x00是吧?

    Usart的发送数据寄存器有一个缓冲移位寄存器。并且发送有两个状态,一个是发送数据寄存器为空,一个是移位寄存器发送完成。上电后Usart的状态寄存器的发送完成位为0,造成了上电以后会始终会有一个值被发送。


    • 发布于 2019-04-07
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 1、检查下你的发送函数,是不是又问题;建议你可以使用printf函数试试

    2、检查你的串口波特率,数据位宽,校验位,停止位是不是不一致

    3、换个串口调试助手,

    • 发布于2019-04-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 在上电的时候会有这种情况,如果说是每次发送都会出现这种情况那就应该是代码处理问题
    • 发布于2019-04-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果是多次触发的,那应该就是软件的问题,可以在硬件调试模式下,用一个数组,记录每一次USART->DR寄存器收到的数据,看是否确实有那个0x00出现,或者干脆使用DMA的方式,DMA是硬件控制的,如果有多收到0x00,也会被放到DMA里面
    • 发布于2019-04-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 1\在启动后等待一个短的时间,让硬件稳定后,再初始化串口,可能是刚上电,相关电路不稳定输出的

    2、软件上的配置问题,寄存器状态没有配置对

    个人使用时,是没有这样的问题的

    • 发布于2019-04-08
    • 举报
    • 评论 0
    • 0
    • 0

  • 看看串口调试助手,是不是软件的问题
    • 发布于2019-04-10
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32的usart总是在接收时多收到一个0x00