2

我的开发目标是一台 Linux 计算机,它有两个物理串行端口位于 /dev/ttyS0 和 /dev/ttyS1。我还希望定义 /dev/ttyS2 和 /dev/ttyS3。

使用 stty -f /dev/ttyS0 和 S1 报告两个串行端口的配置,并报告 S2 和 S3 的“不存在”的东西。

硬件设计人员正在讨论提供 USB 到内置于主板上的串行端口。它们将是外部的 DB9 连接器,只是电路 - 内部没有 USB 连接器。无法保证 USB 到串行连接的数量,我知道足以设计“许多”而不是一个。

因此,在设置我的端口服务器守护进程时,我需要能够确定哪些 ttyS 和哪些 ttyUSB 是“真实的”,哪些不是。会有占位符 ttyUSB 吗?如果要“拔掉插头”(假设它确实是 PC 内部真正的 USB 耦合器)怎么办?

有比 popen()ing stty 并检查其输出以确定串行端口的状态更好的方法吗?stty 有 C API 吗?

谢谢!

4

1 回答 1

4

stty 使用的“C-API”是tcsetattr(3)and tcgetattr(3)

要在不打开设备的情况下查找 TTY,您可以查看以下问题:

如何在不打开 Linux 的情况下找到所有串行设备(ttyS、ttyUSB、..)?

于 2012-04-09T19:45:40.867 回答