从串口超时Windows 7读取

时间:2015-02-26 11:35:00

标签: vb.net serial-port

我继承了一些通过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中工作。

感谢。

1 个答案:

答案 0 :(得分:0)

我认为你需要放一个Timer控件并一直读取串口 因为设备可能会有延迟响应。 在计时器功能内部验证是否有要读取的数据。 或者,检查设备默认的串口配置 像波特率,停止位等等或检查手册,因为有些设备没有菜单,并确保您在串口对象中使用相同的设置。 - 某些设备有一个命令指令集,可以向IO端口发送您想要读取的值。

某些设备需要以VbCrlf char结束。

当我试图实时读取比例重量时,我遇到同样的问题。