FastArduino  v1.7
C++ library to build fast but small Arduino/AVR projects
serial::soft Namespace Reference

Defines API types used by software UART features. More...

Classes

class  UART< board::ExternalInterruptPin, RX_, TX_ >
 
class  UART< board::InterruptPin, RX_, TX_ >
 
class  UARX< board::ExternalInterruptPin, RX_ >
 
class  UARX< board::InterruptPin, RX_ >
 
class  UATX
 Software-emulated serial transmitter API. More...
 

Typedefs

template<board::ExternalInterruptPin RX_>
using UARX_EXT = UARX< board::ExternalInterruptPin, RX_ >
 Software-emulated serial receiver API. More...
 
template<board::InterruptPin RX_>
using UARX_PCI = UARX< board::InterruptPin, RX_ >
 Software-emulated serial receiver API. More...
 
template<board::ExternalInterruptPin RX_, board::DigitalPin TX_>
using UART_EXT = UART< board::ExternalInterruptPin, RX_, TX_ >
 Software-emulated serial receiver/transceiver API. More...
 
template<board::InterruptPin RX_, board::DigitalPin TX_>
using UART_PCI = UART< board::InterruptPin, RX_, TX_ >
 Software-emulated serial receiver/transceiver API. More...
 

Detailed Description

Defines API types used by software UART features.

This API is available to all MCU, even those that do not have hardware UART, hence even ATtiny MCU are supported. IMPORTANT! Note that software-emulated UART cannot be as fast as hardware UART, for that reason a maximum rate of 115'200bps is supported, preferrably with 2 stop bits (depending on the sending device, UART reception may lose bits if only one stop bit is used).

See also
serial::hard

Typedef Documentation

◆ UARX_EXT

template<board::ExternalInterruptPin RX_>
using serial::soft::UARX_EXT = typedef UARX<board::ExternalInterruptPin, RX_>

Software-emulated serial receiver API.

For this API to be fully functional, you must register the right ISR in your program, through REGISTER_UART_INT_ISR().

Template Parameters
RX_the board::ExternalInterruptPin which shall receive serial signal
See also
REGISTER_UART_INT_ISR()
UARX
UATX
UART

Definition at line 775 of file soft_uart.h.

◆ UARX_PCI

template<board::InterruptPin RX_>
using serial::soft::UARX_PCI = typedef UARX<board::InterruptPin, RX_>

Software-emulated serial receiver API.

For this API to be fully functional, you must register the right ISR in your program, through REGISTER_UART_PCI_ISR().

Template Parameters
RX_the board::InterruptPin which shall receive serial signal
See also
REGISTER_UART_PCI_ISR()
UARX
UATX
UART

Definition at line 789 of file soft_uart.h.

◆ UART_EXT

template<board::ExternalInterruptPin RX_, board::DigitalPin TX_>
using serial::soft::UART_EXT = typedef UART<board::ExternalInterruptPin, RX_, TX_>

Software-emulated serial receiver/transceiver API.

For this API to be fully functional, you must register the right ISR in your program, through REGISTER_UART_INT_ISR().

Template Parameters
RX_the board::ExternalInterruptPin which shall receive serial signal
TX_the board::DigitalPin to which transmitted signal is sent
See also
REGISTER_UART_INT_ISR()
UART
UATX
UARX

Definition at line 805 of file soft_uart.h.

◆ UART_PCI

template<board::InterruptPin RX_, board::DigitalPin TX_>
using serial::soft::UART_PCI = typedef UART<board::InterruptPin, RX_, TX_>

Software-emulated serial receiver/transceiver API.

For this API to be fully functional, you must register the right ISR in your program, through REGISTER_UART_PCI_ISR().

Template Parameters
RX_the board::InterruptPin which shall receive serial signal
TX_the board::DigitalPin to which transmitted signal is sent
See also
REGISTER_UART_PCI_ISR()
UART
UATX
UARX

Definition at line 821 of file soft_uart.h.