44 #include "dev/uart0.h" 49 static int (*input_handler)(
unsigned char c);
51 #define UART_INSTANCE NRF_UART0 53 #define TX_PIN NRF_UART0_TX_PIN 54 #define RX_PIN NRF_UART0_RX_PIN 57 uart0_set_input(
int (*
input)(
unsigned char c))
59 input_handler =
input;
62 nrf_uart_int_enable(UART_INSTANCE, NRF_UART_INT_MASK_RXDRDY);
63 NVIC_ClearPendingIRQ(UARTE0_UART0_IRQn);
64 NVIC_EnableIRQ(UARTE0_UART0_IRQn);
65 nrf_uart_task_trigger(UART_INSTANCE, NRF_UART_TASK_STARTRX);
67 nrf_uart_int_disable(UART_INSTANCE, NRF_UART_INT_MASK_RXDRDY);
68 NVIC_ClearPendingIRQ(UARTE0_UART0_IRQn);
69 NVIC_DisableIRQ(UARTE0_UART0_IRQn);
70 nrf_uart_task_trigger(UART_INSTANCE, NRF_UART_TASK_STOPRX);
75 uart0_writeb(
unsigned char c)
77 nrf_uart_txd_set(UART_INSTANCE, c);
80 while(nrf_uart_event_check(UART_INSTANCE, NRF_UART_EVENT_TXDRDY) ==
false);
81 nrf_uart_event_clear(UART_INSTANCE, NRF_UART_EVENT_TXDRDY);
87 nrf_uart_disable(UART_INSTANCE);
88 nrf_gpio_cfg_output(TX_PIN);
89 nrf_gpio_pin_set(TX_PIN);
90 nrf_gpio_cfg_input(RX_PIN, NRF_GPIO_PIN_NOPULL);
93 nrf_uart_configure(UART_INSTANCE, NRF_UART_PARITY_EXCLUDED,
94 NRF_UART_HWFC_DISABLED);
95 nrf_uart_txrx_pins_set(UART_INSTANCE, TX_PIN, RX_PIN);
96 nrf_uart_event_clear(UART_INSTANCE, NRF_UART_EVENT_TXDRDY);
97 nrf_uart_enable(UART_INSTANCE);
98 nrf_uart_task_trigger(UART_INSTANCE, NRF_UART_TASK_STARTTX);
102 UARTE0_UART0_IRQHandler(
void)
104 nrf_uart_event_clear(UART_INSTANCE, NRF_UART_EVENT_RXDRDY);
105 input_handler(nrf_uart_rxd_get(UART_INSTANCE));
void uart0_init(unsigned long ubr)
Initialize the RS232 port.
static void input(void)
Process a received 6lowpan packet.
#define UART0_CONF_BAUD_RATE
Default UART0 baud rate.