termios.c_cflag中的CLOCAL和CRTSCTS标志如何影响串口?

8
我想配置一个UART使用硬件流控制线RTS和CTS在Linux中。根据http://linux.die.net/man/3/termios,CRTSCTS启用RTS/CTS(硬件)流控制,而CLOCAL配置串行端口忽略调制解调器控制线。这2个标志似乎矛盾,如何使用CRTSCTS启用硬件流控制并使用CLOCAL忽略这些线路?
1个回答

12

CLOCAL 只忽略CD信号。


1
感谢您的回答。我正在使用仅带有 RTS 和 CTS 的 UART,不知道 CD 信号的存在。快速的 Google 搜索向我展示了 RS-232(和其他串行协议)除了 RTS 和 CTS 外还使用了载波侦测线。 - Samuel
6
来自Linux tty_ioctl(4)手册的更多信息。如果行的CLOCAL标志关闭,则硬件载波检测(DCD)信号很重要,相应终端的打开(2)将阻塞直到DCD被断言,除非给出O_NONBLOCK标志。如果设置了CLOCAL,则该行的行为就像DCD总是被断言一样。软件载波标志通常对本地设备打开,并关闭对具有调制解调器的线路。 - David Poole

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接