“SoftwareSerial” PIO-based UART
Equivalent to the Arduino SoftwareSerial library, an emulated UART using one or two PIO state machines is included in the Arduino-Pico core. This allows for up to 4 bidirectional or up to 8 unidirectional serial ports to be run from the RP2040 without requiring additional CPU resources.
Instantiate a SerialPIO(txpin, rxpin, fifosize) object in your sketch and then
use it the same as any other serial port. Even, odd, and no parity modes
are supported, as well as data sizes from 5- to 8-bits. Fifosize, if not
specified, defaults to 32 bytes.
To instantiate only a serial transmit or receive unit, pass in
NOPIN as the txpin or rxpin.
For example, to make a transmit-only port on GP16
SerialPIO transmitter( 16, NOPIN );
For detailed information about the Serial ports, see the Arduino Serial Reference .
Inversion
SoftwareSerial and SerialPIO can both support inverted input and/or outputs via the methods
setInvertRX(bool invert) and setInvertTX(bool invert).
SoftwareSerial Emulation
A SoftwareSerial wrapper is included to provide plug-and-play compatibility
with the Arduino Software Serial
library. Use the normal #include <SoftwareSerial.h> to include it. The following
differences from the Arduino standard are present:
All ports are always listening
listencall is a no-opisListening()always returnstrue