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

关注

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

全部回答

  • waitxhurt 发表于 2018-09-14 邀请回答

    串口配置问题,重点检查波特率,检验位,停止位,数据位,

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

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

    回答点赞:   FLYPWR 2aa2e1f92a89b26 代人凌峰 stru9g1e xietaigao ~IOT夙愿 yhj416606438 放电 Spirit liubo 举报 评论 9

  • 老骥伏枥 发表于 2018-09-14 邀请回答

    一般是波特率不一致。其次,是串口波特率过高,适当降低波特率看看,最后是电源不稳定造成的干扰问题,还有就是,如果有usb转串口,国产芯片质量问题,但是ch340我感觉便宜可靠。其他。。。。我再想想。。。

    回答点赞:   FLYPWR 代人凌峰 stru9g1e STM64 xietaigao yhj416606438 放电 liubo 举报 评论 8

  • 赤心木zqw 发表于 2018-09-14

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

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

    回答点赞:   FLYPWR 代人凌峰 STM64 xietaigao 捷波 yhj416606438 放电 举报 评论 7

  • ysg112233 发表于 2018-09-14 邀请回答

    波特率不相同导致上位机显示乱码

    回答点赞:   FLYPWR 代人凌峰 STM64 xietaigao yhj416606438 放电 举报 评论 6

  • lbwb 发表于 2018-09-14 邀请回答

    波特率调低点

    回答点赞:   FLYPWR 代人凌峰 STM64 xietaigao yhj416606438 放电 举报 评论 6

  • wo4fisher 发表于 2018-09-14

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

    回答点赞:   FLYPWR 代人凌峰 STM64 xietaigao yhj416606438 放电 举报 评论 6

  • xxpcb 发表于 2018-09-14 邀请回答

    这种乱码通常都是波特率的问题

    回答点赞:   FLYPWR 代人凌峰 xietaigao yhj416606438 放电 举报 评论 5

  • robe_zhang 发表于 2018-09-14

    上位机串口设置信息要和单片机的串口设置一摸一样,波特率呀,8n1这些都确认一下对不对。单片机发送的字符串,上位机也要显示ascii码,别显示16进制数据,都确认一下

    回答点赞:   FLYPWR 代人凌峰 xietaigao yhj416606438 放电 举报 评论 5

  • 向悫 发表于 2018-09-14 云汉达人

    1、检测GND是否接好。

    2、两边波特率是否一致

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

    4、重启上位机软件

    回答点赞:   代人凌峰 xietaigao yhj416606438 放电 举报 评论 4

  • 哇咔YG 发表于 2018-09-14

    上位机乱码

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

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

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

    回答点赞:   代人凌峰 xietaigao yhj416606438 放电 举报 评论 4

  • xdsnet 发表于 2018-09-14

    波特率、接线问题、字符显示设置问题......

    回答点赞:   代人凌峰 yhj416606438 放电 举报 评论 3

  • yhj416606438 发表于 2018-09-15

    波特率不对,或者发送英文看看可能串口助手不支持中文

    回答点赞:   代人凌峰 举报 评论 1

  • 一指破宫 发表于 2018-09-15

    这个问题 有多方面的

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

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

    回答点赞:   代人凌峰 举报 评论 1

  • 袁建明 发表于 2018-09-15 云汉达人

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

    回答点赞:   代人凌峰 举报 评论 1

  • FEItwo 发表于 2018-09-15

    检查你的硬件连接,初始化配置,接口情况

    回答点赞:   代人凌峰 举报 评论 1

  • megar 发表于 2018-09-15

    先看看波特率设置是否有问题,程序,电脑串口,上位机软件显示方式,然后检查下串口连接线是否有接触不良!

    回答点赞:   代人凌峰 举报 评论 1

  • fighter-12315 发表于 2018-09-15

    上位机软件一般都是有固定格式来识别的,建议先用串口助手看看串口正不正常,正常的话就是你的格式不符合人家上位机软件的要求

    回答点赞:   代人凌峰 举报 评论 1

  • liangeeg 发表于 2018-09-15

    波特率.,编码,进制,排查下

    回答点赞:   代人凌峰 举报 评论 1

  • feiante 发表于 2018-09-15

    看下波特率是不是一样的,奇偶校验位这些配置是否正确

    回答点赞:   代人凌峰 举报 评论 1

  • chen0000009 发表于 2018-09-15

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

    2、检查是否线接反了

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

    回答点赞:   代人凌峰 举报 评论 1

我来回答

试用推荐

深创客NBiot物联网低功耗开发板STM32L476

产品总数:5个  申请人数:122

距离结束时间:

推荐达人 更多>

  • 王奕 向ta提问

    Eagleson

    在学习FPGA的道路上 我们一起成长吧!

    在行: FPGA/CPLD

  • 靳飞 向ta提问

    汉云

    在路上的Linuxer

    在行: DSP技术 Linux 系统 STM32讨论区 PIC单片机 PCB技术/设计/定制

  • Angel Cherry 向ta提问

    MOP

    用愛和熱忱寫好每一行Code

    在行: FPGA/CPLD Linux 系统 热门单片机

  • 徐珂靖 向ta提问

    xukejing

    Linux系统 、热门开发板

    在行: Linux 系统

  • 袁建明 向ta提问

    河北博联科技有限公司 研发部经理

    日知其所亡

    在行: Linux 系统 灵动微MCU 电源技术

完成答题
赶快去开启您的宝箱吧
回答问题攒积分送开发板