Протокол 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
по тайм-ауту..