我的开发目标是一台Linux计算机,它有两个位于/ dev / ttyS0和/ dev / ttyS1的物理串口。我还希望定义/ dev / ttyS2和/ dev / ttyS3。
使用stty -f / dev / ttyS0和S1报告两个串口的配置,并报告S2和S3的“不存在”的内容。
硬件设计人员正在谈论提供USB到主板上内置的串口。它们将是外部的DB9连接器,只是电路 - 内部没有USB连接器。 USB-to-serial连接的数量无法保证,我知道设计为“很多”而不是一个。
因此,在设置我的端口服务器守护进程时,我需要能够确定哪些ttyS和哪些ttyUSB是“真实的”,哪些不是。会不会有地方主义者ttyUSB?如果一个人被“拔掉”(比如确实是PC内部真正的USB耦合器)怎么办?
有没有比popen()stty更好的方法并检查其输出以确定串口的状态?是否有stty的C API?
谢谢!
答案 0 :(得分:4)
stty使用的“C-API”是tcsetattr(3)
和tcgetattr(3)
。
要在不打开设备的情况下查找TTY,您可以查看以下问题:
How to find all serial devices (ttyS, ttyUSB, ..) on Linux without opening them?