开发者

RS232c VB6 help

开发者 https://www.devze.com 2023-01-26 17:24 出处:网络
Hey all, i am trying to turn on a A/V Reciever with a RS232 command using the VB6 comm32. To turn it on it says to use:

Hey all, i am trying to turn on a A/V Reciever with a RS232 command using the VB6 comm32. To turn it on it says to use:

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

And this is my VB6 code i am currently using that doesnt seem to work...

MSComm.CommPort = 2
MSComm.Settings = "9600,n,8,1"
MSComm.PortOpe开发者_运维技巧n = 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

The reciever never turns on. What could i be doing incorrectly? I checked to make sure the com port was 2 and it is.

David


You are just sending the characters <CR> rather than a real carriage return (ASCII code 13). Documentation for serial peripherals often puts the names of control characters in brackets (see Wikipedia for a list of them). You need the line:

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

It also seems that the code that follows to read data from the serial port should be changed because if the data has not arrived in the serial port's buffer yet, it will read nothing. Take a look at Microsoft's example for how to do so. You could decide to stop reading once a particular substring in the input has been found, once a certain number of bytes have been read (Len function), etc.

0

精彩评论

暂无评论...
验证码 换一张
取 消