【发布时间】:2012-12-07 11:52:40
【问题描述】:
您好,我正在尝试使用 COM 端口使用 modbus 协议读取一些寄存器,一切正常,直到我重新启动 modbus 从设备,然后我有错误 com 被拒绝,我可以做的是或重新安装计算机或拔出并回到'usb to com转换器'。似乎此设备无法正确处理 com 端口。
using (port = new SerialPort(comPort))
{
ushort[] registers = null;
try
{
port.BaudRate = boudRate;
port.DataBits = 8;
port.Parity = Parity.None;
port.StopBits = StopBits.One;
port.Open();
// modbus reading registers
port.Close();
return registers;
}
catch (Exception e)
{
Logs.AddToLog(e.Message);
return registers;
}
}
【问题讨论】:
-
你得到了什么错误(你从哪里得到的)?
-
它工作得很好,但是当我重新启动我的 modbus 从站并尝试再次读取时,我遇到了这个 COM 端口被拒绝的异常
-
您已将其包装在
using语句中,因此端口应该关闭,但您可能需要检查 .IsOpen 以确保:msdn.microsoft.com/en-us/library/… -
我还注意到 using 语句中没有
SerialPort port。您将无法在此之外使用port,因为它将被丢弃。改成using (SerialPort port = ...是否有效 -
关闭后多快尝试再次打开?
标签: c# serial-port