class UART – duplex serial communication bus¶
UART implements the standard UART/USART duplex serial communications protocol. At the physical level it consists of 2 lines: RX and TX. The unit of communication is a character (not to be confused with a string character) which can be 8 or 9 bits wide.
UART objects can be created and initialised using:
from machine import UART uart = UART(1, 9600) # init with given baudrate uart.init(9600, bits=8, parity=None, stop=1) # init with given parameters
Supported parameters differ on a board:
Pyboard/OpenMVCam: Bits can be 7, 8 or 9. Stop can be 1 or 2. With parity=None, only 8 and 9 bits are supported. With parity enabled, only 7 and 8 bits are supported.
WiPy/CC3200: Bits can be 5, 6, 7, 8. Stop can be 1 or 2.
A UART object acts like a stream object and reading and writing is done using the standard stream methods:
uart.read(10) # read 10 characters, returns a bytes object uart.read() # read all available characters uart.readline() # read a line uart.readinto(buf) # read and store into the given buffer uart.write('abc') # write the 3 characters
Turn off the UART bus.
Returns an integer counting the number of characters that can be read without blocking. It will return 0 if there are no characters available and a positive number if there are characters. The method may return 1 even if there is more than one character available for reading.
For more sophisticated querying of available characters use select.poll:
poll = select.poll() poll.register(uart, select.POLLIN) poll.poll(timeout)
Read characters. If
nbytesis specified then read at most that many bytes, otherwise read as much data as possible.
Return value: a bytes object containing the bytes read in. Returns
Read bytes into the
nbytesis specified then read at most that many bytes. Otherwise, read at most
Return value: number of bytes read and stored into
Read a line, ending in a newline character.
Return value: the line read or
Write the buffer of bytes to the bus.
Return value: number of bytes written or
Send a break condition on the bus. This drives the bus low for a duration longer than required for a normal transmission of a character.