我继承了一些通过Serial Com Ports与设备通信的软件。
它似乎在XP环境中按预期工作,但相同的代码在Windows 7中不起作用。
我是否需要更改某些内容以使其在7中工作?
代码:
Dim ConfigString As String
Dim ConfigSettings() As String
Try
SerialPort1.Close()
SerialPort1.PortName = ComPortsList.Text ' Combobox with port in
SerialPort1.Open()
SerialPort1.NewLine = vbCrLf
SerialPort1.WriteLine("RS")
ConfigString = SerialPort1.ReadLine
SerialPort1.Close()
ConfigSettings = Strings.Split(ConfigString, ",")
SerialNo.Text = ConfigSettings(ConfigSettings.GetUpperBound(0) - 1)
Catch ex As Exception
MsgBox("Failed to get serial number" & Environment.NewLine & ex.Message)
SerialPort1.Close()
End Try
在Windows 7中尝试时,我从中获得的是超时错误。在XP中工作。
感谢。
答案 0 :(得分:0)
我认为你需要放一个Timer控件并一直读取串口 因为设备可能会有延迟响应。 在计时器功能内部验证是否有要读取的数据。 或者,检查设备默认的串口配置 像波特率,停止位等等或检查手册,因为有些设备没有菜单,并确保您在串口对象中使用相同的设置。 - 某些设备有一个命令指令集,可以向IO端口发送您想要读取的值。
某些设备需要以VbCrlf char结束。
当我试图实时读取比例重量时,我遇到同样的问题。