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

串口接收出现乱码是什么原因,除了波特率不对

白云苍狗 2019-02-16 浏览量:2654
如题
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 有三个问题,

    第一:你的硬件接线可能有松动。

    第二:就是你的板子上存在其他的时钟干扰,比如你的板子上如果有一个高速信号没处理好的话,就会影响单片机的外部晶振。(这样的情况我之前遇到过)。如果你的是开发板的话这个问题就不存在了。

    第三:就是你的程序中可能判断数据有没有发送完毕这一步出错了。单片机的运行速度很快,要快于串口的发送速度,这个时候如果你的程序中没有正确的判断数据到底有没有发送完毕的话,就容易出现有时候数据正确,有时候错误的情况。

    • 发布于 2019-02-16
    • 举报
    • 评论 0
    • 3
    • 0

其他答案 数量:10
  • 信息格式不对也有可能,比如你传的hex数据,但按char解析
    • 发布于2019-02-16
    • 举报
    • 评论 0
    • 1
    • 0

  • 编码设置成ASCII或GB2312看看
    • 发布于2019-02-16
    • 举报
    • 评论 0
    • 1
    • 0

  • 楼上说的很好,我再补充一点,可能受外界电势的影响,机壳共地可能可以有效改善这个问题。。。
    • 发布于2019-02-16
    • 举报
    • 评论 0
    • 1
    • 0

  • 接触不好可能性大一些,你把tx和rx短接,测一下自发自收看看
    • 发布于2019-02-16
    • 举报
    • 评论 0
    • 1
    • 0

  • 用逻辑分析仪抓数据看一下,最好用示波器看一下波形
    • 发布于2019-02-16
    • 举报
    • 评论 0
    • 1
    • 0

  • 有可能是硬件连接不稳,或者上位机通信接口设置不正确!
    • 发布于2019-02-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 一定要注意串口通信时的编码方式,就是十六进制和ASCII之间的转换。
    • 发布于2019-02-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果波特率是对的话那就是串口接收寄存器的问题,有可能是数据没缓存正常。
    • 发布于2019-02-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 也有可能是串口上面受到了干扰,导致有误码
    • 发布于2019-02-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 编码不对也可能乱码
    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

串口接收出现乱码是什么原因,除了波特率不对