11 #ifndef USART_RX_BUF_SIZE 12 #define USART_RX_BUF_SIZE 512 15 #ifndef USART_TX_BUF_SIZE 16 #define USART_TX_BUF_SIZE 1024 60 #define USART_F_RXNE 0x20 61 #define USART_F_TXE 0x80 62 #define USART_F_ORE 0x8 64 #define USART_MASK_IDLEIE 0x10 65 #define USART_MASK_RXNEIE 0x20 66 #define USART_MASK_TCEIE 0x40 67 #define USART_MASK_TXEIE 0x80 68 #define USART_MASK_PEIE 0x100 70 #define USART_MASK2_LBDIE 0x40 72 #define USART_MASK3_CTSIE 0x400 73 #define USART_MASK3_EIE 0x1 75 #define UART_Mode_Rx (0x0004) 76 #define UART_Mode_Tx (0x0008) 78 #define UART_HardwareFlowControl_None (0x0000) 79 #define UART_HardwareFlowControl_RTS (0x0100) 80 #define UART_HardwareFlowControl_CTS (0x0200) 81 #define UART_HardwareFlowControl_RTS_CTS (0x0300) 83 #define UART_Word_8b ((uint16_t)0x0000) 84 #define UART_Word_9b ((uint16_t)0x1000) 142 uint16_t hardwareFlowControl);
165 dev->
USARTx->CR1 |= USART_CR1_UE;
182 dev->
USARTx->CR1 &= (uint16_t)~((uint16_t)USART_CR1_UE);
static uint32_t usart_data_available(const usart_dev *dev)
Return the amount of data available in a serial port's RX buffer.
void USART5_IRQHandler(void)
static void usart_disable_all(void)
Disable all serial ports.
struct usart_dev usart_dev
static uint32_t usart_txfifo_nbytes(const usart_dev *dev)
void usart_init(const usart_dev *dev)
Initialize a serial port.
#define assert_param(expr)
static void usart_enable(const usart_dev *dev)
Enable a serial port.
uint8_t tx_buf[USART_TX_BUF_SIZE]
static uint16_t rb_full_count(ring_buffer *rb)
Return the number of elements stored in the ring buffer.
static uint8_t rb_remove(ring_buffer *rb)
Remove and return the first item from a ring buffer.
void UART5_IRQHandler(void)
void USART2_IRQHandler(void)
void UART4_IRQHandler(void)
const usart_dev *const _UART4
#define USART_RX_BUF_SIZE
const usart_dev *const _USART2
const usart_dev *const UARTS[]
const usart_dev *const _USART1
void USART4_IRQHandler(void)
static AP_HAL::OwnPtr< AP_HAL::Device > dev
static uint32_t usart_putc(const usart_dev *dev, uint8_t bt)
Transmit one character on a serial port.
void usart_putudec(const usart_dev *dev, uint32_t val)
Transmit an unsigned integer to the specified serial port in decimal format.
static void usart_set_callback(const usart_dev *dev, Handler cb)
#define USART_TX_BUF_SIZE
uint8_t rx_buf[USART_RX_BUF_SIZE]
void USART3_IRQHandler(void)
void USART1_IRQHandler(void)
static uint8_t usart_is_used(const usart_dev *dev)
void usart_foreach(void(*fn)(const usart_dev *))
Call a function on each USART.
const usart_dev *const _USART3
static void usart_disable(const usart_dev *dev)
Turn off a serial port.
const usart_dev *const _UART5
static void usart_reset_rx(const usart_dev *dev)
Discard the contents of a serial port's RX buffer.
void usart_setup(const usart_dev *dev, uint32_t baudRate, uint16_t wordLength, uint16_t stopBits, uint16_t parity, uint16_t mode, uint16_t hardwareFlowControl)
Configure a serial port's baud rate.
uint32_t usart_tx(const usart_dev *dev, const uint8_t *buf, uint32_t len)
Nonblocking USART transmit.
static void rb_reset(ring_buffer *rb)
Discard all items from a ring buffer.
void USART6_IRQHandler(void)
struct usart_state usart_state
static uint8_t usart_getc(const usart_dev *dev)
Read one character from a serial port.
static void usart_reset_tx(const usart_dev *dev)
static void usart_putstr(const usart_dev *dev, const char *str)
Transmit a character string on a serial port.
static uint32_t usart_txfifo_freebytes(const usart_dev *dev)
const usart_dev *const _USART6