|
发表于 2021-10-22 10:05:16
|
显示全部楼层
#define myUart2 LPC_UART2
STATIC RINGBUFF_T txring2, rxring2;
#define UART_SRB_SIZE2 128 /* Send */
#define UART_RRB_SIZE2 32 /* Receive */
static uint8_t rxbuff2[UART_RRB_SIZE2], txbuff2[UART_SRB_SIZE2];
static void Uart2Init(void)
{
Chip_IOCON_PinMux(LPC_IOCON,0,10,IOCON_MODE_REPEATER,IOCON_FUNC1);//TXD P0.2 复用配置
Chip_GPIO_SetPinDIROutput(LPC_GPIO,0,10);//设置P0.2 输出模式
Chip_IOCON_PinMux(LPC_IOCON,0,11,IOCON_MODE_REPEATER,IOCON_FUNC1);//TXD P0.3 复用配置
Chip_GPIO_SetPinDIRInput(LPC_GPIO,0,11);//设置P0.3 输入模式
/* Setup UART for 115.2K8N1 */
Chip_UART_Init(myUart2);//初始化Uart1
Chip_UART_SetBaud(myUart2, 115200);//设置Uart1波特率
Chip_UART_ConfigData(myUart2, (UART_LCR_WLEN8 | UART_LCR_SBS_1BIT));//数据位8,停止位1Bit
Chip_UART_TXEnable(myUart2);//使能Uart1
RingBuffer_Init(&rxring2, rxbuff2, 1, UART_RRB_SIZE2);//设置接收RingBuf
RingBuffer_Init(&txring2, txbuff2, 1, UART_SRB_SIZE2);//设置发送RingBuf
Chip_UART_SetupFIFOS(myUart2, (UART_FCR_FIFO_EN | UART_FCR_RX_RS | UART_FCR_TX_RS | UART_FCR_TRG_LEV3));
Chip_UART_IntEnable(myUart2,UART_IER_RBRINT|UART_IER_RLSINT);//使能接受中断
NVIC_SetPriority(UART2_IRQn, 3);//设置中断优先级
NVIC_EnableIRQ(UART2_IRQn);//打开接受中断
}
void UART2_IRQHandler(void)//串口处理中断
{
Chip_UART_IRQRBHandler(myUart2, &rxring2, &txring2);//中断处理
}
1768程序供参考 |
|