为什么使用串口软件会显示乱码
㈠ 使用串口服务器会出现乱码怎么办
硬件原因,注意TTL RS232 RS485这几种电平形式是不同的,不能直接连接,需要用232芯片或者485芯片转发,客户最常犯的一个错误是将TTL电平直接接到计算机上,肯定会乱码,计算机是RS232电平。另外硬件设计不当,有干扰也可能会导致通讯不正常。仔细检查硬件即可。
波特率、 数据位、 校验位不匹配,即我们的网络转串口设备与您的串口设备波特率不匹配,设置成一致即可。
有时候如果如果无法确认问题在哪,可以使用自收发的形式排除。
1、您的设备直接和电脑通讯,按照你理解的波特率相关设置,看是否正常,以确认你的设置是否有问题。
2、断开您的设备与网络模块之间的连接,再将我们的模块串口的RXD和TXD短接,通过网络发送网络接收,看数据是否正常,以确认我们的模块工作正常。
3、断开您的设备与网络模块之间的连接,再将您的设备的串口收发短接,通过电脑自收自发,看数据是否正常,以确认您的电脑到串口这部分硬件工作正常。
㈡ 为什么串口通讯调试软件上得到乱码
首先确认硬件接线没问题,其次检查波特率等通信参数、再有就是接收的数据有没有中文,如果有中文,则需要设置正确的解码才可以,类似格西烽火软件,可以设置中文的编码方式。
㈢ 串口调试乱码的原因
1.USB转串口的问题
解决方法:我曾用一个12块钱的那种U转串,出现过乱码,换一个好的就没事了
2.波特率不同步的问题
解决方法:两边设置的波特率的一样,会导致这样的问题
3.在通信波特率为 38400 时,通信正常,arm 板上解受到的数据(ascII码)显示正常。
但是当波特率为 115200
时,解受到的数据就出现乱码的现象!
解决方法:暂无
4.用ARM2103 给电脑发送信息,用串口高度精灵看,一直接收的都是错误码
解决方法: 我用的44b0曾经出现过显示乱码的问题,在超级终端上显示的;
后来才发现是在boot汇编程序里设置了主频为60M;但是在串口初始化时用的是40M,在c语言程序里忘记重新设定主频了
㈣ 串口出乱码/无输出的原因
很简单
线序问题:两个设备的发送和接收要交叉连接(即发送对接收接收对发送)
如果连接错误无任何反映
波特率问题:如果线序正确波特率不一样就会有乱码出现
还有一种串口自检的方法:
用跳线把串口的发送和接收短接就是串口的2脚3脚能够实现自发自收
这样能检测串口工作是否正常
㈤ HELP,为什么我的串口发送数据显示的是乱码
乱码的原因通常有两个:
1、波特率 数据位 校验位 不匹配,即网络转串口设备与您的串口设备波特率不匹配,设置成一致即可。
2、硬件原因,注意TTL RS232 RS485这几种电平形式是不同的,不能直接连接,需要用232芯片或者485芯片转发,客户最常患的一个错误是将TTL电平直接接到计算机上,肯定会乱码,计算机是RS232电平。另外硬件设计不当,有干扰也可能会导致通讯不正常。仔细检查硬件即可。
如果无法确认问题在哪,可以使用自收发的形式排除。
1、您的设备直接和电脑通讯,按照你理解的波特率相关设置,看是否正常,以确认你的设置是否有问题。
2、断开您的设备与网络模块之间的连接,再将模块串口的RXD和TXD短接,通过网络发送网络接收,看数据是否正常,以确认我们的模块工作正常。
3、断开您的设备与网络模块之间的连接,再将您的设备的串口收发短接,通过电脑自收自发,看数据是否正常,以确认您的电脑到串口这部分硬件工作正常。
㈥ 为什么软件会乱码
系统字体丢失,或者没有正确安装,缺少了关键文件,因此才可能出现这样的问题!
㈦ 串口程序 调试助手显示是乱码 为啥
你
发送的
可能是
2进制数
不是
ascii
码,所以
显示乱码
你可以
传输之前,转换
为
字符串
接收
后
程序
编程
转换
串口调试助手
也可以
选择
16进制显示
祝你顺利
㈧ 串口接收到乱码什么原因
乱码很正常,因为是通讯嘛,硬件的接收当然要可能出现预料外的数据,比如,有些调制方式的Modem就是会必定产生乱码,足够强的电磁干扰信号也可能让数据出错。乱码是有的,但不存在“多余的”这样的概念,如果你觉得“多余”,那只是你通讯协议没制定好。
串口的协议,通常情况下格式是这样的:起始字(多字节),数据区长度(根据需要,一般是1或2字节),校验和(多字节),数据区(多字节)。
每个包都如此,起始字一般是全部正常通讯数据中不可能用到的字节序列组合,校验和一般采用CRC校验的为多(这样比较可靠,源代码在网上很多)。
对协议的接收分包工作,是个稍微复杂的编码工作(代码本身不复杂,你需要思维复杂点),你需要定义一个“接受状态”的标志值,每接一个字节变换一次状态值,它标志着你下一次将接收什么字节,比如:起始字字节1,起始字字节2,……,数据区长度字节1,数据区长度字节2,……,校验和字节1,校验和字节2……,数据区(已经进数据区了,因为已经知道长度,只积攒缓冲而已,一个标志就够)。积攒完数据区字节后,计算校验和,如果不符合前面协议给的结果,则将“接受状态”的标志值复位(将接收起始字字节1),从前面的起始字字节2开始(模拟接收)重复上面过程。以上这个过程需要你熟练编码操控二进制缓冲区。
有很多人把数据结构指针当发送缓冲,后面跟一个sizeof()就直接发出去;接收那端直接预期有多少字节数据,死等在那里;或者,按时间去接受(规定协议间要间隔若干秒),这些都是丝毫不懂通讯的胡作非为,早晚要出问题,如果你代码里有这些做法,推荐你早点把它们改过来。
对串口通讯的接收,实际上用计算机处理起来是这样的:串口是按位接收数据的,但PC机的底层硬件和软件已经能按标准协议规定把位缓冲并识别转换成字节了,不过,每收一个字节的时间远比PC机程序运行慢得多,因此,对你的程序而言,接收的数据,其实就是一串无限长的字节任意序列慢慢向你走来,你一次只能见到一个,任何一个字节都与其他字节没什么特殊地方,它们可能是数据包的一部分或几个数据包,也许有的是错的,甚至根本全是错的,这全靠你程序去分辨——在了解了这些实际的基础上,你才可以设计你的协议和程序。
㈨ 串口读取的数据显示为乱码
1、用一个变量超时计数来判断;2、正常,有干扰;3、要接收啊,可能是你接收程序没有做好,死机了。