1

大家好,我正在尝试使用 VB6 comm32 使用 RS232 命令打开 A/V 接收器。要打开它,它说要使用:

 Command code   Parameter code  CR    Code set example
 PW           ON              <CR>  PWON<CR>

这是我目前使用的 VB6 代码,但似乎不起作用...

MSComm.CommPort = 2
MSComm.Settings = "9600,n,8,1"
MSComm.PortOpen = True

If Not MSComm.PortOpen Then
    MsgBox "not opened"
Else
    MSComm.Output = "PWON" & Chr(13)

    Do While MSComm.InBufferCount > 0
         Text1.Text = Text1.Text & MSComm.Input
    Loop
End If

接收器永远不会打开。我可能做错了什么?我检查以确保 com 端口是 2,它是。

大卫

4

1 回答 1

3

您只是发送字符<CR>而不是真正的回车(ASCII 代码 13)。串行外围设备的文档通常将控制字符的名称放在括号中(请参阅 Wikipedia 以获取它们的列表)。你需要这条线:

MSComm.Output = "PWON" & Chr(13)

似乎还应该更改从串口读取数据的代码,因为如果数据还没有到达串口的缓冲区,它将什么也不会读取。查看Microsoft 的示例以了解如何执行此操作。一旦找到输入中的特定子字符串,一旦读取了一定数量的字节(Len函数)等,您就可以决定停止读取。

于 2010-11-21T03:27:57.323 回答