使串口通知改变握手线

时间:2013-12-23 18:04:20

标签: linux serial-port

是否可以打开串行设备(例如/dev/ttyS0)并通过select / poll /等通知......或者当握手线(如CTS / RTSDSR / DTR)有变化吗?我知道在硬件级别有来自UART的中断告诉内核它已经改变了,但我可以在用户区告知它吗?


编辑:我知道TIOCMIWAIT,但ioctl调用阻塞,直到状态行发生变化。我希望继续进行一般处理,让poll或类似的人了解变化以及其他事件。

1 个答案:

答案 0 :(得分:1)

无法等待DTR / RTS线路在用户空间中更改。在Linux上执行此操作的唯一方法是不断轮询设备,检查RTS / DTR线路的状态是否已更改。我通常从gtkerm和it polls窃取我的串口代码。

您可以尝试使用TIOCMIWAIT,但如果我没记错的话,它将与Linux正在使用的串行端口的驱动程序紧密相关,因此从驱动程序到驱动程序可能无法正常工作。