我正在通过串口与电路进行通信,并想知道是否应该设置写超时?
有人可以举例说明为什么/如何使用它?我理解读取超时的重点(例如我刚刚发送了一个命令,我应该在250ms内收到响应)但是没有真正看到写入超时的原因。在一台非常旧的计算机上发送字符串需要很长时间?
感谢。
答案 0 :(得分:3)
如果您正在使用硬件握手,则不会写入字节,直到达到正确的握手引脚状态。所以你可以超时等待其他设备发出信号表明它已经准备好接收更多数据,在其末端标识满缓冲区,或者设备只是离线。如果您关闭了硬件hasshaking,或者它已经在串行端口(RTS到CTS)上跳出,那么您可能超时的唯一时间是将字节写入设备的速度更快,以便可以通过线路发送。最终你将填充输出缓冲区并阻塞(假设你没有使用async io)。如果驱动程序无法足够快地清除缓冲区,如果时间设置太短,则可能会超时写入。