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

51单片机串口实验乱码

megar 2017-11-29 浏览量:1818

做串口通讯实验,发送1,接受到的数据,串口调试助手显示总是乱码,win7 64位系统 ,调试工具是

SComAssistant V4.1,程序是直接将电脑发送的数据回发到电脑!

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 串口收到乱码,可能原因有很多,最常见的就是波特率错误,而波特率错误也有一些原因会导致,比如软件配置错误,系统时钟配置错误,晶振选择错误,总的来说就是波特率错误,这个也很方便查,看看uart 的波特率寄存器算一下就知道了。(波特率错误,乱码会保持相同错乱内容,比如楼主发的是1,乱码是a,那持续发1,乱码将一直是a,如果不是,请忽略此项,反之有90%可能是此项导致)

    再者,还有可能是电平匹配错误,TTL的电平接CMOS电平就会是乱码.反之亦然。还有硬件协议错误,422接232就会是乱码。

    还有软件错误,比如发送缓存被释放,也会是乱码。(乱码不相同)

    以上是常见原因,非常见原因还有串口线过长导致电平丢失,受外界干扰时序错乱等(如果是稳定丢失,可不参考此项),上位机以及串口线损坏也会导致乱码,但很少见到。(并非没有)


    最好的解决办法,利用逻辑分析仪抓取时序,确定错误方在谁那里。

    • 发布于 2017-11-29
    • 举报
    • 评论 1
    • 0
    • 0
megar 回复了 大写加粗的L:找到原因了晶振没有用11.0592 回复

其他答案 数量:8
  • 乱码一般都是波特率不对

    而影响波特率的有可能是程序计算错误

    或者晶振使用不当,特别是使用内部RC振荡器容易出现乱码现象

    • 发布于2017-11-29
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :Steady State Current @ Vak = 7.5 V (Note 1)稳态电流的范围是76.5~103.5mA 回复

电子老工程师 回复了  :同一物料 回复

  • 不太清楚楼主的程序出了啥问题,给个单片机代码看看?

    • 发布于2017-11-29
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :https://www.infineon.com/dgdl/Infineon-FF600R06ME3-DS-v03_01-en_de.pdf?fileId=db3a304318a6cd680118e5130f161311 回复

  • 首先查看下串口工具的发送和接收是不是同样的配置,16进制是否全部勾选或者不勾选

    第二检查串口线,直接短接rxtx查看是否是串口线问题。

    第三代码跟踪,查看代码设置的波特率和串口的波特率一致。

    第四,调试查看代码接收是否是期望的字符。

    • 发布于2017-11-30
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :封装不一样 没尾缀:8-SOIC 有尾缀:VSON -8 回复

  • 单片机波特率是否计算正确呢?是否跟串口助手波特率一样呢?

    • 发布于2017-11-30
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :不能替代的,引脚那个定义的是收发数据的接口 回复

  • 楼主啥都不给怎么判断?程序或者串口调试助手的截图给张我们才更好判断是什么问题啊!

    • 发布于2017-11-30
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :-2尾缀没有output discharge功能 回复

  • 一般是波特率的问题,另外还有不要传输中文字符。
    • 发布于2017-12-01
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :原厂资料无明确说明 一般是器件型号的简易标识和内部代码等信息,无法通过顶标来判断错料与否请根据下单型号与原厂标签进一步核实 回复

  • 这种通常就是串口设置不正确,注意看一下起始位,停止位,校验位,数据长度,波特率这五个参数
    • 发布于2017-12-02
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :没有找到 回复

相关问题

问题达人换一批

51单片机串口实验乱码