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 pyb import UART uart = UART(1, 9600) # init with given baudrate uart.init(9600, bits=8, parity=None, stop=1) # init with given parameters
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.readall() # 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
Constructors¶
Methods¶
-
uart.deinit()¶ Turn off the UART bus.
-
uart.read([nbytes])¶ Read characters. If
nbytesis specified then read at most that many bytes. Ifnbytesare available in the buffer, returns immediately, otherwise returns when sufficient characters arrive or the timeout elapses.
-
uart.readall()¶ Read as much data as possible. Returns after the timeout has elapsed.
Return value: a bytes object or
Noneif timeout prevents any data being read.
-
uart.readchar()¶ Receive a single character on the bus.
Return value: The character read, as an integer. Returns -1 on timeout.
-
uart.readinto(buf[, nbytes])¶ Read bytes into the
buf. Ifnbytesis specified then read at most that many bytes. Otherwise, read at mostlen(buf)bytes.Return value: number of bytes read and stored into
buforNoneon timeout.
-
uart.readline()¶ Read a line, ending in a newline character. If such a line exists, return is immediate. If the timeout elapses, all available data is returned regardless of whether a newline exists.
Return value: the line read or
Noneon timeout if no data is available.
-
uart.write(buf)¶
-
uart.sendbreak()¶ Send a break condition on the bus. This drives the bus low for a duration of 13 bits. Return value:
None.