/** * Configuring the UART console */ int uart_init(uart_t uart, uint32_t baudrate, uart_rx_cb_t rx_cb, void *arg) { /* Check the arguments */ assert((uart == 0) || (uart == 1)); /* Check to make sure the UART peripheral is present */ if(!ROM_SysCtlPeripheralPresent(g_ulUARTPeriph[uart])){ return -1; } int res = init_base(uart, baudrate); if(res < 0){ return res; } /* save callbacks */ config[uart].rx_cb = rx_cb; config[uart].arg = arg; switch (uart){ #if UART_0_EN case UART_0: ROM_UARTTxIntModeSet(g_ulUARTBase[uart], UART_TXINT_MODE_EOT); ROM_UARTFIFOLevelSet(g_ulUARTBase[uart], UART_FIFO_TX4_8, UART_FIFO_RX4_8); ROM_UARTFIFOEnable(g_ulUARTBase[uart]); /* Enable the UART interrupt */ NVIC_EnableIRQ(UART_0_IRQ_CHAN); /* Enable RX interrupt */ UART_0_IM = UART_IM_RXIM | UART_IM_RTIM; break; #endif #if UART_1_EN case UART_1: ROM_UARTTxIntModeSet(g_ulUARTBase[uart], UART_TXINT_MODE_EOT); ROM_UARTFIFOLevelSet(g_ulUARTBase[uart], UART_FIFO_TX4_8, UART_FIFO_RX4_8); ROM_UARTFIFOEnable(g_ulUARTBase[uart]); /* Enable the UART interrupt */ NVIC_EnableIRQ(UART_1_IRQ_CHAN); /* Enable RX interrupt */ UART_1_IM = UART_IM_RXIM | UART_IM_RTIM; break; #endif } return 0; }
/** * Configuring the UART console */ int uart_init(uart_t uart, uint32_t baudrate, uart_rx_cb_t rx_cb, uart_tx_cb_t tx_cb, void *arg) { /* Check the arguments */ assert(uart == 0); /* Check to make sure the UART peripheral is present */ if(!ROM_SysCtlPeripheralPresent(SYSCTL_PERIPH_UART0)){ return -1; } int res = uart_init_blocking(uart, baudrate); if(res < 0){ return res; } /* save callbacks */ config[uart].rx_cb = rx_cb; config[uart].tx_cb = tx_cb; config[uart].arg = arg; /* ulBase = g_ulUARTBase[uart]; */ switch (uart){ #if UART_0_EN case UART_0: NVIC_SetPriority(UART_0_IRQ_CHAN, UART_IRQ_PRIO); ROM_UARTTxIntModeSet(UART0_BASE, UART_TXINT_MODE_EOT); ROM_UARTFIFOLevelSet(UART0_BASE, UART_FIFO_TX4_8, UART_FIFO_RX4_8); ROM_UARTFIFOEnable(UART0_BASE); /* Enable the UART interrupt */ NVIC_EnableIRQ(UART_0_IRQ_CHAN); /* Enable RX interrupt */ UART0_IM_R = UART_IM_RXIM | UART_IM_RTIM; break; #endif #if UART_1_EN case UART_1: NVIC_SetPriority(UART_1_IRQ_CHAN, UART_IRQ_PRIO); /* Enable the UART interrupt */ NVIC_EnableIRQ(UART_1_IRQ_CHAN); break; #endif } return 0; }