/* Init seriové linky a pinů určených k přenosu dat * Nastavení UARTu: 115.2K8N1. * FIFO lvl3 - 14 znaků. * */ void setup_uarts(){ /* UART0 set up */ Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 2, (IOCON_FUNC1 | IOCON_MODE_INACT)); Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 3, (IOCON_FUNC1 | IOCON_MODE_INACT)); /* Setup UART0 for 115.2K8N1 */ Chip_UART_Init(LPC_UART0); Chip_UART_SetBaud(LPC_UART0, 115200); Chip_UART_ConfigData(LPC_UART0, (UART_LCR_WLEN8 | UART_LCR_SBS_1BIT)); Chip_UART_SetupFIFOS(LPC_UART0, (UART_FCR_FIFO_EN | UART_FCR_TRG_LEV2)); Chip_UART_TXEnable(LPC_UART0); Chip_UART_IntEnable(UART0, (UART_IER_RBRINT)); Chip_UART_SetupFIFOS(LPC_UART0, (UART_FCR_FIFO_EN | UART_FCR_RX_RS | UART_FCR_TX_RS | UART_FCR_TRG_LEV3)); NVIC_EnableIRQ(UART0_IRQn); /* UART2 set up */ Chip_IOCON_PinMuxSet(LPC_IOCON, 2, 8, (IOCON_FUNC2 | IOCON_MODE_INACT)); Chip_IOCON_PinMuxSet(LPC_IOCON, 2, 9, (IOCON_FUNC2 | IOCON_MODE_INACT)); /* Setup UART4 for 115.2K8N1 */ Chip_UART_Init(UART2); Chip_UART_SetBaudFDR(UART2, 115200); Chip_UART_ConfigData(UART2, (UART_LCR_WLEN8 | UART_LCR_SBS_1BIT | UART_LCR_PARITY_DIS)); Chip_UART_TXEnable(UART2); Chip_UART_IntEnable(UART2, (UART_IER_RBRINT)); Chip_UART_SetupFIFOS(UART2, (UART_FCR_FIFO_EN | UART_FCR_RX_RS | UART_FCR_TX_RS | UART_FCR_TRG_LEV3)); NVIC_EnableIRQ(UART2_IRQn); /* UART4 set up */ Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 22, (IOCON_FUNC3 | IOCON_MODE_INACT)); Chip_IOCON_PinMuxSet(LPC_IOCON, 5, 3, (IOCON_FUNC4 | IOCON_MODE_INACT)); /* Setup UART4 for 115.2K8N1 */ Chip_UART_Init(LPC_UART4); Chip_UART_SetBaudFDR(LPC_UART4, 115200); Chip_UART_ConfigData(LPC_UART4, (UART_LCR_WLEN8 | UART_LCR_SBS_1BIT | UART_LCR_PARITY_DIS)); Chip_UART_TXEnable(LPC_UART4); Chip_UART_IntEnable(LPC_UART4, (UART_IER_RBRINT)); Chip_UART_SetupFIFOS(LPC_UART4, (UART_FCR_FIFO_EN | UART_FCR_RX_RS | UART_FCR_TX_RS | UART_FCR_TRG_LEV3)); //Chip_UART_SetAutoBaudReg(LPC_UART4,UART_ACR_START | UART_ACR_MODE); NVIC_EnableIRQ(UART4_IRQn); }
/* Initialize debug output via UART for board */ void Board_Debug_Init(void) { #if defined(DEBUG_UART) Board_UART_Init(DEBUG_UART); Chip_UART_Init(DEBUG_UART); Chip_UART_SetBaudFDR(DEBUG_UART, 115200); Chip_UART_ConfigData(DEBUG_UART, UART_LCR_WLEN8 | UART_LCR_SBS_1BIT | UART_LCR_PARITY_DIS); /* Enable UART Transmit */ Chip_UART_TXEnable(DEBUG_UART); #endif }
void uart_init(void) { /* Board specific muxing */ uart_pinmux(); Chip_UART_Init(LPC_USART); Chip_UART_SetBaudFDR(LPC_USART, 115200); Chip_UART_ConfigData(LPC_USART, (UART_LCR_WLEN8 | UART_LCR_SBS_1BIT)); Chip_UART_SetupFIFOS(LPC_USART, (UART_FCR_FIFO_EN | UART_FCR_TRG_LEV2)); Chip_UART_TXEnable(LPC_USART); RingBuffer_Init(&uart_rxrb, uart_rxdata, 1, UART_RX_BUF_SZ); RingBuffer_Init(&uart_txrb, uart_txdata, 1, UART_TX_BUF_SZ); /* Enable receive data and line status interrupt */ Chip_UART_IntEnable(LPC_USART, (UART_IER_RBRINT | UART_IER_RLSINT)); /* Enable Interrupt for UART channel */ /* Priority = 1 */ NVIC_SetPriority(UART0_IRQn, 1); /* Enable Interrupt for UART channel */ NVIC_EnableIRQ(UART0_IRQn); }