MSCOMM,串口通讯问题

时间:2022-09-06 10:19:20
我能在mscomm.input里面读取数据,当我showmessage(mscomm.input)的时候,显示的都是乱码汉字啥的,我是从上海耀华磅机上的232口读出的数据,应该在程序里面显示出当前重量,可我怎么在乱码重提取我想要的重量数据那

11 个解决方案

#1


>>,显示的都是乱码汉字啥的
看协议,

用十六进制处理

#2


看什么协议

#3


不明白您说的
MSCOMM的INPUTMODEL属性应该设置为0TEXT模式还是应该是1 二进制模式
用TEXT模式SHOWMESSAGE出来就是汉字的乱码
如何用16禁止处理?

#4


首先你用mscomm.input是用十六进制数,然后用协议把用十六进制转换过来就行了

#5


首先你用mscomm.input是十六进制数,然后用协议把用十六进制转换过来就行了

#6


协议是什么协议?是我那机器内部数据结构的协议?不懂,能说明白些么?

#7


协议是指RS232协议,去查资料.再结合称重设备厂家给你的一数据格式,就可以搞定

#8


接收到的数据是厂家按自己的格式设定的一组数据,你必须了解这一组数据的结构,也就是每部分代表的意义,就是所说的协议

#9


什么破FAQ,点了一下居然说要扣两分可用分,协议是人定的,一般都有消息头尾的,哪能随便就显示汉字?

#10


使用二进制读取数据,然后用inttohex函数转换一下就可以了,但我要说的是,如果是出现乱码,那么说明这个磅秤不是用asc码通讯的,而是RTU模式,所以单字节范围内的数值可能超过了7F,超过了asc码表的数值范围,被认为是汉字或者其它语言的字符了,使用mscomm很有可能识别不出来,我现在也在找这个问题的解决方法,好像VB里可以解决,但在delphi里,我还没找到这个方法,希望你找到以后能高手我一下,谢谢了

#11


chr(decvre)

#1


>>,显示的都是乱码汉字啥的
看协议,

用十六进制处理

#2


看什么协议

#3


不明白您说的
MSCOMM的INPUTMODEL属性应该设置为0TEXT模式还是应该是1 二进制模式
用TEXT模式SHOWMESSAGE出来就是汉字的乱码
如何用16禁止处理?

#4


首先你用mscomm.input是用十六进制数,然后用协议把用十六进制转换过来就行了

#5


首先你用mscomm.input是十六进制数,然后用协议把用十六进制转换过来就行了

#6


协议是什么协议?是我那机器内部数据结构的协议?不懂,能说明白些么?

#7


协议是指RS232协议,去查资料.再结合称重设备厂家给你的一数据格式,就可以搞定

#8


接收到的数据是厂家按自己的格式设定的一组数据,你必须了解这一组数据的结构,也就是每部分代表的意义,就是所说的协议

#9


什么破FAQ,点了一下居然说要扣两分可用分,协议是人定的,一般都有消息头尾的,哪能随便就显示汉字?

#10


使用二进制读取数据,然后用inttohex函数转换一下就可以了,但我要说的是,如果是出现乱码,那么说明这个磅秤不是用asc码通讯的,而是RTU模式,所以单字节范围内的数值可能超过了7F,超过了asc码表的数值范围,被认为是汉字或者其它语言的字符了,使用mscomm很有可能识别不出来,我现在也在找这个问题的解决方法,好像VB里可以解决,但在delphi里,我还没找到这个方法,希望你找到以后能高手我一下,谢谢了

#11


chr(decvre)