vb串口问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 15:41:11
用VB中串口通讯,下位机要求数据传输格式为ASII码形式,请问怎么能把数据转换成ASII码?谢谢高手指教
如果我要发这个命令#010100075,那么具体程序该怎么写?是用字符方式传送吗?向串口发送字符串就可以吗?
我这样发了,可是下位机没有反应啊!
如果还要加回车的话 SendText = "#010100075"+chr(13),这样对吗?串口的inputmode=1设置对吗?
我按照你那样发了,可是下位机没有响应啊 ,下位机只接收ASII码(十六进制的),如何处理呢

你提及的是直接以ASCII码的文本方式发送数据,发送命令中的数值数据直接用0-9,小数点不传递,由上下位机约定。命令需带下位机要求引导符和结束符,命令字长根据下位机确定,数据放那位置同样处理。
引导符或结束符有可能是文本无法显示的ASCII码,在ASCII码值(10进制)为0-127范围内用CHR函数处理,例:
ML = Chr(13) & "1234" & "ABCD" & Chr(27)
其中Chr(13)或Chr(27)等文本无法显示。
串口传送数据实质是传送ASCII码,如是8位二进制数据,其ASCII码值(10进制)为0-255。用二进制表示为00000000 - 11111111
16进制表示为 00 - FF
传送数据大于255,则用16位二进制(即2字节ASCII码组成)。10进制范围-32768到+32767。
如有小数,则应由上下位机约定,不进行串送。
串口通信中数制转换必须相当重视。
以上是以二进制方式收发数据。
也可直接以ASCII码的文本方式发送数据,而字节量大

Private Sub Command1_Click()
SendText = "#010100075"
MSComm1.Output =SendText
End Sub

补充:SendText = "#010100075"+chr(13),可以
串口的inputmode设置为1,那是数据通过 Input 属性以二进制形式取回,这需和你接收数据的内容有关。
如果接收数据中8位二进值按10进制在128-255范围的,接收必须设置
inputmode = 1,那么接收必须按二进制形式取回,转为16进制数字符形式显示。

其它请参阅如下网址本人的答复:
http://