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

stm32用串口给电脑上位机发字符串显示乱码问题

liubo 2018-09-14 浏览量:4452
stm32单片机用串口给电脑上位机发字符串的时候,上位机显示乱码是怎么回事啊
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 一般是波特率不一致。其次,是串口波特率过高,适当降低波特率看看,最后是电源不稳定造成的干扰问题,还有就是,如果有usb转串口,国产芯片质量问题,但是ch340我感觉便宜可靠。其他。。。。我再想想。。。
    • 发布于 2018-09-14
    • 举报
    • 评论 0
    • 12
    • 0

其他答案 数量:33
  • 串口配置问题,重点检查波特率,检验位,停止位,数据位,

    硬件问题,GND一定要接,txrx要正确,串口芯片问题,接线太长,大于2米等

    软件问题,注意发送函数重入问题,用系统的互斥,不用系统的想办法不在同一时间发送

    • 发布于2018-09-14
    • 举报
    • 评论 0
    • 11
    • 0

  • 波特率不相同导致上位机显示乱码
    • 发布于2018-09-14
    • 举报
    • 评论 0
    • 8
    • 0

  • 波特率调低点
    • 发布于2018-09-14
    • 举报
    • 评论 0
    • 7
    • 0

  • 一般是波特率的问题,根据下位机设置的波特率,选择上位机的波特率,两者波特率及协议应该一致。

    另外,如果传输中文,中文使用的编码方式,也会引起乱码的可能,但是这种乱码仅局限于中文。

    • 发布于2018-09-14
    • 举报
    • 评论 0
    • 7
    • 0

  • 乱码说明有数据输出。那就要保证你9600n81这几个参数一致,另外就是stm32端程序时钟正确,因为之前遇到过在别的板上外部8m的时钟,另一个板上的时侯乱码,板载晶振是12m。还有就是你是十六进制模式还是ascii模式,你输出helloworld肯定得用ascii模式看,如果是输出十六进制数据,就要用十六进制模式显示数据。这样才能对上号。
    • 发布于2018-09-14
    • 举报
    • 评论 0
    • 6
    • 0

  • 这种乱码通常都是波特率的问题
    • 发布于2018-09-14
    • 举报
    • 评论 0
    • 5
    • 0

  • 上位机串口设置信息要和单片机的串口设置一摸一样,波特率呀,8n1这些都确认一下对不对。单片机发送的字符串,上位机也要显示ascii码,别显示16进制数据,都确认一下
    • 发布于2018-09-14
    • 举报
    • 评论 0
    • 5
    • 0

  • 1、检测GND是否接好。

    2、两边波特率是否一致

    3、如果线太长或者太细了都会影响传输准确性。

    4、重启上位机软件

    • 发布于2018-09-14
    • 举报
    • 评论 0
    • 4
    • 0

  • 上位机乱码

    有可能是你的波特率不一致

    有可能是你的上位机没有选择HEX显示(十六进制)

    有可能是你的下位机发送的本来就是乱码的数据

    • 发布于2018-09-14
    • 举报
    • 评论 0
    • 4
    • 0

  • 波特率、接线问题、字符显示设置问题......
    • 发布于2018-09-14
    • 举报
    • 评论 0
    • 3
    • 0

  • 波特率不对,或者发送英文看看可能串口助手不支持中文
    • 发布于2018-09-15
    • 举报
    • 评论 0
    • 1
    • 0

  • 这个问题 有多方面的

    首先是串口配置是否正确,波特率选择是否正确,用的线束是否合格

    是否是 ASCII码和 16进制选择有误,都试一下,

    • 发布于2018-09-15
    • 举报
    • 评论 0
    • 1
    • 0

  • 发送端只发送数字的ASCII码,比如0x30 0x31等等,看看是否还有乱码,如果还是有乱码最大的可能性是波特率不匹配,发送端和接收端的波特率设置要一致才能正确接收,不一致就会出现乱码,再有就是连接线中没有接地也会导致乱码。如果数字接收不乱吗,有其他乱码的情况,很可能是接收端的字符集支持问题,可以使用十六进制方式查看正确与否
    • 发布于2018-09-15
    • 举报
    • 评论 0
    • 1
    • 0

  • 检查你的硬件连接,初始化配置,接口情况
    • 发布于2018-09-15
    • 举报
    • 评论 0
    • 1
    • 0

  • 先看看波特率设置是否有问题,程序,电脑串口,上位机软件显示方式,然后检查下串口连接线是否有接触不良!
    • 发布于2018-09-15
    • 举报
    • 评论 0
    • 1
    • 0

  • 上位机软件一般都是有固定格式来识别的,建议先用串口助手看看串口正不正常,正常的话就是你的格式不符合人家上位机软件的要求
    • 发布于2018-09-15
    • 举报
    • 评论 0
    • 1
    • 0

  • 波特率.,编码,进制,排查下
    • 发布于2018-09-15
    • 举报
    • 评论 0
    • 1
    • 0

  • 看下波特率是不是一样的,奇偶校验位这些配置是否正确
    • 发布于2018-09-15
    • 举报
    • 评论 0
    • 1
    • 0

  • 1、先检查串口配置,波特率,停止位,校验位等

    2、检查是否线接反了

    3、电平是否匹配,这个很容易被忽视,因为有些模块串口出来的电压比较奇葩,像1.8V的,这种需要进行电平转换,否则就是乱码

    • 发布于2018-09-15
    • 举报
    • 评论 0
    • 1
    • 0

  • 如果上位机能接收信号,可以:

    连续发送固定ASCII码,例如0xAA,多个,在上位机接收端打开窗口调试助手等软件查看

    1. 如果永远接收不到0xAA,而是乱码,先检查上下位机的收发波特率、停止位、速率等;

    2. 如果是丢失数据,例如发了5个,接收到了4个,应该是软件设置的问题居多[硬件不大可能,也不排除];

    3. 如果偶尔出错,可以查看有无其他较高中断级别的的中断在收发过程产生中断造成的;

    4. 串口传输线采用绞合线比并联直通线好,线不宜太长。

    试试吧

    • 发布于2018-09-16
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32用串口给电脑上位机发字符串显示乱码问题