Не удается открыть UART на 40-контактном разъеме

Я работаю на доске объявлений Coral. Я пытаюсь использовать UART1_TXD/RXD, UART3_TXD/RXD на 40-контактном разъеме на плате разработчика. Я следую учебному пособию Подключение к контактам 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 имеют тот же результат.

Какой правильный путь к устройству?

1 ответ

Решение

Два порта UART, представленные на плате разработчиков Coral (UART1 и UART3), соответствуют следующим дескрипторам файлов:

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

Вы можете получить доступ к этим портам через 40-контактный разъем ввода-вывода и через интерфейс последовательной консоли (мост USB-UART предоставляет два порта при подключении к рабочей станции).

Текущий выпуск Mendel (шеф-повар) идет со следующими оговорками:

  1. UART1 используется совместно с консолью последовательной отладки. Вам нужно будет отключить консоль в Linux, чтобы использовать этот порт с приложениями.
  2. UART3 не включен по умолчанию в базовом пакете. Вам необходимо обновить пакеты на вашей плате, чтобы включить это. Мы добавили инструкции к документации ввода / вывода.
Другие вопросы по тегам