Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#SerialPort WriteTimeout是否使用?_C#_Timeout_Serial Port - Fatal编程技术网

c#SerialPort WriteTimeout是否使用?

c#SerialPort WriteTimeout是否使用?,c#,timeout,serial-port,C#,Timeout,Serial Port,我正在通过串行端口与电路通信,想知道是否应该设置写入超时 有人能举例说明为什么/如何使用它吗?我理解读取超时的意义(例如,我刚刚发送了一个命令,我应该在250毫秒内收到响应),但我并不真正理解写入超时的原因。在一台非常旧的计算机上,发送字符串需要很长时间 谢谢。如果您使用的是硬件握手,则在达到正确的握手引脚状态之前,不会写入字节。因此,您可以在等待另一台设备发出信号表示它已准备好接收更多数据时超时,从而在其末尾指示缓冲区已满,或者该设备只是离线。如果您关闭了硬件,或者将其连接到串行端口(RTS到

我正在通过串行端口与电路通信,想知道是否应该设置写入超时

有人能举例说明为什么/如何使用它吗?我理解读取超时的意义(例如,我刚刚发送了一个命令,我应该在250毫秒内收到响应),但我并不真正理解写入超时的原因。在一台非常旧的计算机上,发送字符串需要很长时间


谢谢。

如果您使用的是硬件握手,则在达到正确的握手引脚状态之前,不会写入字节。因此,您可以在等待另一台设备发出信号表示它已准备好接收更多数据时超时,从而在其末尾指示缓冲区已满,或者该设备只是离线。如果您关闭了硬件,或者将其连接到串行端口(RTS到CTS),那么唯一可能超时的时间就是将字节写入设备的速度要快于通过线路发送的速度。最终,您将填充输出缓冲区和块(假设您没有使用异步io)。如果驱动程序无法足够快地清除缓冲区,则如果超时设置得太短,您可能会在写入时超时。

它检测到设备关闭握手的时间过长。这是否是个问题取决于你。