/** UART specific methods that will be called by the generic methods */
structbusvoodoo_uart_generic_specific_t{
uint32_tusart;/**< USART peripheral base address */
uint32_tusart_rcc;/**< USART RCC address */
uint32_tusart_rst;/**< USART RST address */
boolmultidrive;/**< if multiple drive modes are supported (push-pull, open-drain with internal resistors, open-drain with external resistors), or just push-pull */
uint32_ttx_port;/**< GPIO port address of transmit pin */
uint32_ttx_pin;/**< GPIO pin address of transmit pin */
uint32_ttx_rcc;/**< GPIO RCC address of transmit pin */
void(*tx_pre)(void);/**< method to be called before transmitting data */
void(*tx_post)(void);/**< method to be called after transmitting data */
uint32_trx_port;/**< GPIO port address of receive pin */
uint32_trx_pin;/**< GPIO pin address of receive pin */
uint32_trx_rcc;/**< GPIO RCC address of receive pin */
void(*rx_pre)(void);/**< method to be called before receiving data */
void(*rx_post)(void);/**< method to be called after receiving data */
/* hardware flow control configuration */
boolhwflowctl;/**< if RTC/CTS hardware flow control is supported */
uint32_trts_port;/**< GPIO port address of request to send pin */
uint32_trts_pin;/**< GPIO pin address of request to send pin */
uint32_trts_rcc;/**< GPIO RCC address of request to send pin */
uint32_tcts_port;/**< GPIO port address of clear to send pin */
uint32_tcts_pin;/**< GPIO pin address of clear to send pin */
uint32_tcts_rcc;/**< GPIO RCC address of clear to send pin */