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