我很难将一个整数发送到一个串口...我正在尝试这样的东西,它运行正常,但我没有在端口处拾取任何东西。
Private Sub fireToPort()
Dim sPort As New SerialPort("COM1", 56000, Parity.None, 8, StopBits.One)
sPort.Open()
sPort.Write(New Byte() {Hex(1), 255}, 0, 0)
sPort.Close()
End Sub
有什么建议吗?
答案 0 :(得分:3)
sPort.Write的最后一个参数不应该是你要发送的字节数吗?
e.g。
sPort.Write(New Byte() {Hex(1), 255}, 0, 2)
答案 1 :(得分:2)
抓住PortMon By Mark Russinovich (formerly of SysInternals)。
这将帮助您确认端口正在打开,配置正确并写入。
您应该会看到您的流程进行IRP_MJ_WRITE
操作,结果为SUCCESS
。
如果这一切都有效,那么问题可能是你连接到COM1的任何东西都需要不同的波特率。
答案 2 :(得分:1)
试试这个
'I looped my serial port on COM5
Dim sPort As New IO.Ports.SerialPort("COM5", 57600, IO.Ports.Parity.None, _
8, IO.Ports.StopBits.One)
sPort.Handshake = IO.Ports.Handshake.None '<<< pick the correct one
sPort.Open()
Dim b() As Byte = New Byte() {1, 255, 0, 0}
sPort.Write(b, 0, b.Length)
sPort.BaseStream.Flush()
'because I looped the port I should be able to read it
Dim b1(3) As Byte
sPort.Read(b1, 0, 4)
sPort.Close()
答案 3 :(得分:1)
sPort.Write(New Byte() {Hex(1), 255}, 0, 0)
最后一个参数应该是255
,这是你要发送的数据长度。