19 #include "nrf_delay.h"
24 while (NRF_UART0->EVENTS_RXDRDY != 1)
29 NRF_UART0->EVENTS_RXDRDY = 0;
30 return (uint8_t)NRF_UART0->RXD;
38 while (NRF_UART0->EVENTS_RXDRDY != 1)
40 if (timeout_ms-- >= 0)
55 NRF_UART0->EVENTS_RXDRDY = 0;
56 *rx_data = (uint8_t)NRF_UART0->RXD;
64 NRF_UART0->TXD = (uint8_t)cr;
66 while (NRF_UART0->EVENTS_TXDRDY != 1)
71 NRF_UART0->EVENTS_TXDRDY = 0;
78 uint8_t ch = str[i++];
88 uint8_t rts_pin_number,
89 uint8_t txd_pin_number,
90 uint8_t cts_pin_number,
91 uint8_t rxd_pin_number,
94 nrf_gpio_cfg_output(txd_pin_number);
95 nrf_gpio_cfg_input(rxd_pin_number, NRF_GPIO_PIN_NOPULL);
97 NRF_UART0->PSELTXD = txd_pin_number;
98 NRF_UART0->PSELRXD = rxd_pin_number;
101 nrf_gpio_cfg_output(rts_pin_number);
102 nrf_gpio_cfg_input(cts_pin_number, NRF_GPIO_PIN_NOPULL);
103 NRF_UART0->PSELCTS = cts_pin_number;
104 NRF_UART0->PSELRTS = rts_pin_number;
105 NRF_UART0->CONFIG = (UART_CONFIG_HWFC_Enabled << UART_CONFIG_HWFC_Pos);
108 NRF_UART0->BAUDRATE = (baudrate << UART_BAUDRATE_BAUDRATE_Pos);
109 NRF_UART0->ENABLE = (UART_ENABLE_ENABLE_Enabled << UART_ENABLE_ENABLE_Pos);
110 NRF_UART0->TASKS_STARTTX = 1;
111 NRF_UART0->TASKS_STARTRX = 1;
112 NRF_UART0->EVENTS_RXDRDY = 0;
uint8_t simple_uart_get(void)
Function for reading a character from UART. Execution is blocked until UART peripheral detects charac...
void simple_uart_putstring(const uint8_t *str)
Function for sending a string to UART. Execution is blocked until UART peripheral reports all charact...
void simple_uart_put(uint8_t cr)
Function for sending a character to UART. Execution is blocked until UART peripheral reports characte...
bool simple_uart_get_with_timeout(int32_t timeout_ms, uint8_t *rx_data)
Function for reading a character from UART with timeout on how long to wait for the byte to be receiv...
void simple_uart_config(uint32_t baudrate, uint8_t rts_pin_number, uint8_t txd_pin_number, uint8_t cts_pin_number, uint8_t rxd_pin_number, bool hwfc)
UART configuration.