1

我正在尝试在 Linux 中使用串行端口做一些简单的事情。具体来说:

平台 - BeagleBone Black

操作系统 - Angstrom Linux

单声道版本 2.10.8.1 (Arm)

该板将其六个串行端口实现为 ttyO0 到 ttyO5 而不是 ttyS0。

它实际上有 ttyS0 到 ttyS3。

当我枚举端口时,它会找到 ttyS0 等,但没有找到 ttyO0 等。不幸的是,实际上具有真正串行端口的是 ttyO0 等端口。有没有办法让 Mono 能够使用这些?

谢谢!

菲尔

4

1 回答 1

2

我自己想通了。

真的很简单。他们专门扫描以 /dev/ttyS 开头的端口名称:

public static string [] GetPortNames ()
        {
                int p = (int) Environment.OSVersion.Platform;
                List<string> serial_ports = new List<string>();

                // Are we on Unix?
                if (p == 4 || p == 128 || p == 6) {
                        string[] ttys = Directory.GetFiles("/dev/", "tty*");
                        foreach (string dev in ttys) {
                                if (dev.StartsWith("/dev/ttyS") || dev.StartsWith("/dev/ttyUSB"))
                                        serial_ports.Add(dev);
于 2013-07-22T07:52:26.977 回答