1

我正在开发珊瑚开发板。我正在尝试在开发板上的 40 针接头上使用 UART1_TXD/RXD、UART3_TXD/RXD。我正在按照教程连接到 GPIO 引脚

[serial_test.py]

from periphery import Serial

serial = Serial("/dev/ttyS0", 115200)

serial.write(b"Hello World!")

buf = serial.read(128, 0.5)
print("read %d bytes: _%s_" % (len(buf), buf))
serial.close()

当我测试电路板时:

$ python3 serial_test.py
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/periphery/serial.py", line 166, in _open
    termios.tcsetattr(self._fd, termios.TCSANOW, [iflag, oflag, cflag, lflag, ispeed, ospeed, cc])
termios.error: (5, 'Input/output error')

在处理上述异常的过程中,又出现了一个异常:

Traceback (most recent call last):
  File "serial.py", line 5, in <module>
    serial = Serial("/dev/ttyS0", 115200)
  File "/usr/local/lib/python3.5/dist-packages/periphery/serial.py", line 60, in __init__
    self._open(devpath, baudrate, databits, parity, stopbits, xonxoff, rtscts)
  File "/usr/local/lib/python3.5/dist-packages/periphery/serial.py", line 168, in _open
    raise SerialError(e.errno, "Setting serial port attributes: " + e.strerror)
AttributeError: 'error' object has no attribute 'errno'

$ stty -F /dev/ttyS0
stty: /dev/ttyS0: Input/output error

其余的 ttyS1~3 也有同样的结果。

正确的设备路径是什么?

4

1 回答 1

2

Coral 开发板上的两个 UART 端口(UART1 和 UART3)映射到以下文件句柄:

  • UART1/dev/ttymxc0
  • UART3/dev/ttymxc2

您可以通过40 针 I/O 连接器串行控制台接口访问这些端口(USB 到 UART 桥接器在连接到您的工作站时会公开两个端口)。

当前版本的 Mendel (chef) 带有以下注意事项:

  1. UART1与串行调试控制台共享。您需要禁用 Linux 中的控制台才能将此端口用于应用程序。
  2. 基本包中默认不启用UART3 。您需要更新板上的软件包以启用此功能。我们在I/O 文档中添加了说明。
于 2019-04-30T20:38:52.393 回答