当物理断开USB端口上的串行电缆时,C#SerialPort.IsOpen返回true。任何人都可以帮助我如何克服这一问题。
串口不是这样工作的,它们没有像TCP这样的面向连接的标准协议。“ IsOpen”名称的选择不是偶然的,它不是说“ Connected”的,它仅表示Open()调用成功,并且在程序退出时调用Close()方法可能是一个好主意。
幸运的是,当断开电缆连接或关闭设备电源时,应该看到SerialPort.DsrHolding属性为false。SerialPort.CtsHolding应该指示设备已准备好接收数据。这些硬件握手信号不能始终正确实施,当电缆由于电气噪声而断开连接时,它们可能会给出错误的指示。
否则,永远没有充分的理由断开电缆的连接,并且没有任何人知道它,串行端口电缆总是很短。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句