VB6 RS232命令不起作用

时间:2011-05-25 22:39:01

标签: vb6 serial-port

我有以下代码:

MSCommProj.CommPort = 6
MSCommProj.RThreshold = 1
MSCommProj.Settings = "19200,N,8,1"
MSCommProj.InputLen = 0
MSCommProj.PortOpen = True

它打开就好并且连接但是当我尝试发送命令时:

MSCommProj.Output = "21 8901 5057 31 0A" & Chr$(13)

MSCommProj.Output = "21 89 01 50 57 31 0A" & Chr$(13)

MSCommProj.Output = "3F 89 01 50 57 0A" & Chr$(13)

根据用户手册的说明,它没有出现。

以下是手册中显示此内容的页面。也许我只是做错了?: enter image description here enter image description here enter image description here enter image description here

3 个答案:

答案 0 :(得分:5)

确定您是否打算将字符数据发送到RS232接口?那些看起来像二进制序列给我。

而不是:

MSCommProj.Output = "3F 89 01 50 57 0A" & Chr$(13)

我正在考虑传输二进制数据:

MSCommProj.Output = chr$(63) & chr$(137) & chr$(1) & chr$(80) & chr$(87) & chr(10)

你会注意到最后没有chr$(13),规范没有要求它。


如果您想知道这些十六进制值的转换是什么,请启动Windows计算器,将视图更改为科学,切换到十六进制模式,输入值,切换到十进制模式。

或者您可以为此目的下载ASCII table。或者查看我关于这个主题的大量论文之一here

答案 1 :(得分:2)

您需要发送给定的字节 您改为发送那些字符串表示。

发送实际字节 chr$(&h21) & chr$(&h89) & chr$(&h01) & chr$(&h50)等。

答案 2 :(得分:0)

这是因为我没有使用交叉电缆......所有的rs232代码都是正确的。等等。