Протокол UART

Модуль uart позволяет вам общаться с устройством, подключенным к вашей плате, используя последовательный интерфейс.

Функции

microbit.uart.init(baudrate=9600, bits=8, parity=None, stop=1, \*, tx=None, rx=None)

Инициализировать последовательную связь с указанными параметрами на указанные выводы tx и rx. Обратите внимание, что для правильной связи параметры должны быть одинаковыми на обоих взаимодействующих устройствах.

Предупреждение

Инициализация UART на внешних контактах вызовет включение консоли Python. USB становится недоступным, так как использует то же оборудование. Чтобы настроить консоли обратно, Вы должны повторно инициализировать UART, ничего не передавая для tx или rx (или передача None этим аргументам). Это означает что вызова uart.init(115200) достаточно для восстановления консоли Python.

baudrate определяет скорость передачи данных:

  • 9600

  • 14400

  • 19200

  • 28800

  • 38400

  • 57600

  • 115200

bits определяет размер передаваемых байтов, плата поддерживает только 8. Параметр parity определяет, как проверяется четность, Параметр stop указывает количество стоповых битов и должен быть равен 1 для эта доска.

Если tx и rx не указаны, то внутренние контакты USB-UART TX/RX используются, они подключаются к последовательному преобразователю USB на micro:bit. Вы можете указать любые другие контакты, которые вы хотите, передача желаемых объектов вывода в параметры tx и rx.

Примечание

При подключении устройства убедитесь, что вы «перекрестили» провода — TX вывод на вашей плате должен быть соединен с выводом RX на устройстве, а контакт RX – с контактом TX на устройстве. Также убедитесь, что заземление обоих устройств соединено.

uart.any()

Возвращает True если какие-либо данные ожидаются, иначе False.

uart.read([nbytes])

Читатет байты. Если указано nbytes, тогда можно прочитать не больше этого количества байт, в противном случае прочитайте как можно больше байтов.

Возвращаемое значение: объект bytes или None по тайм-ауту.

Объект bytes содержит последовательность байтов. Так как ASCII персонажи могут вписать одиночные байты, этот тип объекта часто используется для представления простого текста и предлагает методы манипулирования им как таковым, например. вы можете отобразить текст используя функцию print().

Вы также можете преобразовать этот объект в строковый объект, и если есть символы, отличные от ASCII, могут быть указаны в кодировке:

msg_bytes = uart.read()
msg_str = str(msg, 'UTF-8')

Примечание

Тайм-аут для всех операций чтения UART зависит от скорости передачи данных и в противном случае нельзя изменить через Python. Тайм-аут в миллисекундах определяется выражением: microbit_uart_timeout_char = 13000 / baudrate + 1

Примечание

Внутренний буфер UART RX составляет 64 байта, поэтому убедитесь, что данные считываются до того, как буфер заполнится или некоторые данные могут быть потеряны.

Предупреждение

Получение 0x03 остановит вашу программу, подняв клавиатуру. Прерывать. Вы можете включить или отключить это, используя micropython.kbd_intr().

uart.readinto(buf[, nbytes])

Считайте байты в buf. Если указано nbytes, то можно прочитать не более столько байтов. В противном случае читать не более len(buf) байт.

Возвращаемое значение: количество байтов, прочитанных и сохраненных в buf или None на тайм-аут.

uart.readline()

Прочитать строку, заканчивающуюся символом новой строки.

Возвращаемое значение: прочитанная строка или None по тайм-ауту. Символ новой строки включены в возвращаемые байты.

uart.write(buf)

Запишите буфер на шину, это может быть байтовый объект или строка:

uart.write('hello world')
uart.write(b'hello world')
uart.write(bytes([1, 2, 3]))

Возвращаемое значение: количество записанных байтов или None по тайм-ауту..