我有以下代码:
MSCommProj.CommPort = 6
MSCommProj.RThreshold = 1
MSCommProj.Settings = "19200,N,8,1"
MSCommProj.InputLen = 0
MSCommProj.PortOpen = True
Run Code Online (Sandbox Code Playgroud)
它打开就好并且连接但是当我尝试发送命令时:
MSCommProj.Output = "21 8901 5057 31 0A" & Chr$(13)
Run Code Online (Sandbox Code Playgroud)
和
MSCommProj.Output = "21 89 01 50 57 31 0A" & Chr$(13)
Run Code Online (Sandbox Code Playgroud)
和
MSCommProj.Output = "3F 89 01 50 57 0A" & Chr$(13)
Run Code Online (Sandbox Code Playgroud)
根据用户手册的指示,它没有出现.
以下是手册中显示此内容的页面.也许我只是做错了?:

你确定要将字符数据发送到RS232接口吗?那些看起来像二进制序列给我.
而不是:
MSCommProj.Output = "3F 89 01 50 57 0A" & Chr$(13)
Run Code Online (Sandbox Code Playgroud)
我正在考虑传输二进制数据:
MSCommProj.Output = chr$(63) & chr$(137) & chr$(1) & chr$(80) & chr$(87) & chr(10)
Run Code Online (Sandbox Code Playgroud)
你会注意到chr$(13)最后没有,规范没有要求.
如果您想知道这些十六进制值的转换是什么,请启动Windows计算器,将视图更改为科学,切换到十六进制模式,输入值,切换到十进制模式.
或者,您可以为此目的下载ASCII表.或者在这里查看我关于这个主题的大量文章之一.