社区
C#
帖子详情
急:串口接收数据乱码问题
pimlee
2012-02-28 10:20:01
目前做称重管理系统:
现在环境是:一个传感器连接称重显示器,然后连接电脑。
用一个串口测试程序测了一下。接收到的数据,一开始老是乱码。
为什么?
第二,我比特率之类的参数已经和显示器参数都设置好了。
第三。是不是因为乱码的问题,我读出来的数据都是问号
先谢谢
...全文
1270
44
打赏
收藏
急:串口接收数据乱码问题
目前做称重管理系统: 现在环境是:一个传感器连接称重显示器,然后连接电脑。 用一个串口测试程序测了一下。接收到的数据,一开始老是乱码。 为什么? 第二,我比特率之类的参数已经和显示器参数都设置好了。 第三。是不是因为乱码的问题,我读出来的数据都是问号 先谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
44 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
abc516
2014-04-02
打赏
举报
回复
这两天我也遇到这个情况。最后发现不是编程的问题,是上海耀华电子秤XK3190-A27E仪表的问题。这个仪表的输出串口有两种配置,一种是RS232C,另一种是大屏幕(电流环)。编程去接收后面一种接口的数据就会出现乱码,实际操作手册里有描述: 大屏幕(电流环) 接线请参见图2-4. 大屏幕信号为20mA恒流的电流环信号,以二进制码串行输出,波特率为600。每一桢数据有11个位,1个起始位(0)、8个数据位(低位在前)、1个标志位、1个停止位(1)。 客户已将仪表退回原厂进行更换。
pimlee
2012-03-20
打赏
举报
回复
多谢多谢。我总结下
c1c2c33
2012-03-15
打赏
举报
回复
我也遇到这个问题,但是我换成USB转串口 就不会出现乱码?用主板自带的会出现乱码
狂奔小蜗牛
2012-03-07
打赏
举报
回复
在接收上编码问题。你看下这块。或许可以解决!
cdglynn
2012-03-07
打赏
举报
回复
[Quote=引用 15 楼 pimlee 的回复:]
[/Quote]
按这个解码不可以了吗,不能直接转换成字符串,得写解析吧
lfqsy
2012-02-29
打赏
举报
回复
我觉得主要是进制转换问题,然后把有用的部分取出来解析就可以了,c#有时候接收不完全,这个要判断
pimlee
2012-02-28
打赏
举报
回复
[Quote=引用 20 楼 aerkate 的回复:]
之前纠结为什么存到文件里面是乱码,发现没有转化成16进制
[/Quote]
转换成16进制然后?
aerkate
2012-02-28
打赏
举报
回复
之前纠结为什么存到文件里面是乱码,发现没有转化成16进制
pimlee
2012-02-28
打赏
举报
回复
[Quote=引用 18 楼 showlie 的回复:]
1、首先验证一帧应答数据的合法性:起始符、结束符、异或校验
2、第3~8字节的值是ASCII表中的值,如31表示数字1,32表示数组2,也就是说称重值为5位
3、把5位称重值合成为int类型数值weight
4、获取第9字节小数点位数pointer(也是ASCII转换),然后weight=weight/power(10,pointer)
5、获取第2字节符号位symbol,weight=……
[/Quote]
怎么写?
showlie
2012-02-28
打赏
举报
回复
1、首先验证一帧应答数据的合法性:起始符、结束符、异或校验
2、第3~8字节的值是ASCII表中的值,如31表示数字1,32表示数组2,也就是说称重值为5位
3、把5位称重值合成为int类型数值weight
4、获取第9字节小数点位数pointer(也是ASCII转换),然后weight=weight/power(10,pointer)
5、获取第2字节符号位symbol,weight=symbol=='+'?weight:0-weight;
pimlee
2012-02-28
打赏
举报
回复
[Quote=引用 13 楼 ycagri 的回复:]
关键是搞一份通讯协议看一看,不能自己瞎猜
[/Quote]
15楼那个图是不是通讯协议
pimlee
2012-02-28
打赏
举报
回复
[Quote=引用 14 楼 chinajiyong 的回复:]
引用 11 楼 pimlee 的回复:
楼上,急需说明
接收区,你是想用10进制显示吗
接收的是16进制,你的数据好像是双字节传过来的,比如地位在前,高位在后
就这样转换为10进制
iSum += Convert.ToInt32(bufPress[i + 1].ToString("X2") + bufPress[i].ToString("X2"), 16);
[/Quote]
这个是2.001就对了,你这个是整数。
pimlee
2012-02-28
打赏
举报
回复
EnForGrass
2012-02-28
打赏
举报
回复
[Quote=引用 11 楼 pimlee 的回复:]
楼上,急需说明
[/Quote]
接收区,你是想用10进制显示吗
接收的是16进制,你的数据好像是双字节传过来的,比如地位在前,高位在后
就这样转换为10进制
iSum += Convert.ToInt32(bufPress[i + 1].ToString("X2") + bufPress[i].ToString("X2"), 16);
ycagri
2012-02-28
打赏
举报
回复
关键是搞一份通讯协议看一看,不能自己瞎猜
ycagri
2012-02-28
打赏
举报
回复
乱码的问题:
1、串口参数是否正确:波特率、数据位、停止位、校验位
2、不是所有编码都可以用ASCII显示的,因为16进制编码的时候,可以使用一些ASCII无法显示的控制字符
pimlee
2012-02-28
打赏
举报
回复
楼上,急需说明
EnForGrass
2012-02-28
打赏
举报
回复
编码的问题,看输出什么编码
pimlee
2012-02-28
打赏
举报
回复
现在输出这么一串。怎么变成数字
18 3F 3F 6A 3F 3F 60 3F 3F 6A 3F 1C 3F 0A 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
pimlee
2012-02-28
打赏
举报
回复
传输的数据方式是:10位:1位起始位,8位数据位(ASCII编码)、1位停止位。
加载更多回复(22)
串口通信解决
数据
乱码
和
数据
丢失
本程序主要解决了
串口接收
数据
的过程中出现
乱码
和
数据
丢失的情况,特别适合于串口通信的初学者.希望能够对大家有所帮助
【物联网与嵌入式开发】Python串口通信中二进制与字符串转换解析:解决
串口接收
乱码
问题
内容概要:本文详细探讨了Python串口通信中常见的
乱码
问题
及其解决方案。首先介绍了串口通信的重要性及应用场景,随后分析了
乱码
产生的主要原因,包括波特率不匹配、编码方式不一致和串口参数设置错误。文章进一步解释了二进制与字符串转换的原理和流程,并提供了具体的Python代码示例,演示如何使用`pyserial`库进行二进制与字符串的转换。最后,通过一个智能家居监测系统的实际案例,展示了如何排查和解决
乱码
问题
。; 适合人群:具有一定编程基础,尤其是从事物联网、嵌入式开发或设备通信领域的Python开发者。; 使用场景及目标:①理解和解决Python串口通信中的
乱码
问题
;②掌握二进制与字符串转换的原理和方法;③学会使用`pyserial`库进行串口通信编程。; 阅读建议:本文内容实用且详尽,建议读者结合实际项目需求,逐步实践文中提供的代码示例,并根据具体情况进行参数调整。在学习过程中,重点关注波特率、编码方式和串口参数设置的一致性,以确保
数据
传输的准确性。
【自动化控制与
数据
采集】LabVIEW串口工具汉字
乱码
解决方案:串口通信参数与编码设置优化
内容概要:本文详细探讨了LabVIEW串口工具在接收汉字
数据
时出现
乱码
问题
的原因及解决方案。首先介绍了LabVIEW串口工具在自动化控制与
数据
采集中的重要性及其常见应用场景。接着阐述了串口通信的基本原理,包括串口通信标准(如RS-232、RS-422、RS-485)和
数据
帧格式,以及LabVIEW中实现串口通信的具体步骤。文章重点分析了汉字
乱码
产生的三个主要原因:编码不一致、串口参数设置不当和缓冲区与
数据
处理
问题
,并提供了针对性的解决方案,如确定发送端编码、使用LabVIEW中的字符串编码转换函数、配置串口读取编码、复查串口参数、添加
数据
校验与纠错机制以及优化缓冲区设置。最后通过实践验证,证明了上述方法的有效性,并展望了LabVIEW串口通信在未来工业自动化和物联网等领域的应用前景。 适合人群:具备一定编程基础,从事自动化控制与
数据
采集工作的工程师和技术人员。 使用场景及目标:①解决LabVIEW串口工具接收汉字
数据
时出现的
乱码
问题
;②确保串口通信中汉字
数据
的准确传输与解析;③提升对LabVIEW串口通信原理及编码设置的理解,优化
数据
处理流程。 阅读建议:本文内容详实,涵盖了从理论到实践的各个环节。读者应结合自身项目需求,重点掌握编码设置、串口参数配置及
数据
校验等关键技术点,并通过实际操作进行验证,以确保能够熟练应对LabVIEW串口通信中可能出现的各种
问题
。
51串口发送汉字
乱码
问题
解决方案
51单片机串口发送汉字显示
乱码
问题
【嵌入式系统】串口通信常见
问题
及优化策略:
数据
丢失、
乱码
和稳定性提升方法综述
内容概要:本文深入探讨了串口通信中常见的三大
问题
——
数据
丢失、
乱码
和稳定性差,并提供了详细的优化策略。针对
数据
丢失,建议增大接收缓存区和采用流控机制(如硬件流控RTS/CTS或软件流控XON/XOFF)。对于
数据
乱码
,强调确保发送端和接收端的波特率、
数据
位、停止位、奇偶校验等参数一致,并引入校验和或CRC校验以保障
数据
完整性。为了提升稳定性,提出调整波特率、定时读取
数据
、设置错误检测机制以及增加重试机制等方法。文章还提供了具体的代码示例,帮助开发者更好地理解和应用这些解决方案。; 适合人群:从事嵌入式系统、工业自动化、物联网设备开发的技术人员,尤其是对串口通信有一定基础但遇到具体
问题
需要优化的工程师。; 使用场景及目标:①解决高频率或高负载下串口通信中的
数据
丢失
问题
;②修正因配置不一致或传输错误导致的
数据
乱码
现象;③提高串口通信的稳定性和可靠性,确保系统长时间运行无故障。; 其他说明:本文不仅提供了理论指导,还附带了具体的代码实现,便于读者直接应用于实际项目中。建议读者在实践中结合自身需求,逐步调整和测试,找到最适合自己的优化方案。
C#
111,112
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章