Part Number:LAUNCHXL-F2800157
电脑通过串口给板子的串口发送数据,板子的串口接收数据,但是无法触发接收到数据的中断
但是在电脑发送多个数据之后,芯片串口的FIFO溢出了,此时触发FIFO满的中断
请问该如何让串口一接收到数据就出发中断
串口初始化代码如下:
#define UART_BASE SCIB_BASE
#define UART_INT_RX INT_SCIB_RX
#define UART_INT_RX_INTERRUPT_ACK_GROUP INTERRUPT_ACK_GROUP9
SCI_clearInterruptStatus(UART_BASE, SCI_INT_RXFF | SCI_INT_TXFF | SCI_INT_FE | SCI_INT_OE | SCI_INT_PE | SCI_INT_RXERR | SCI_INT_RXRDY_BRKDT | SCI_INT_TXRDY);
SCI_clearOverflowStatus(UART_BASE);
SCI_resetTxFIFO(UART_BASE);
SCI_resetRxFIFO(UART_BASE);
SCI_resetChannels(UART_BASE);
SCI_setConfig(UART_BASE, DEVICE_LSPCLK_FREQ, UART_BAUD_RATE, (SCI_CONFIG_WLEN_8|SCI_CONFIG_STOP_ONE|SCI_CONFIG_PAR_NONE));
SCI_disableLoopback(UART_BASE);
SCI_disableSleepMode(UART_BASE);
SCI_performSoftwareReset(UART_BASE);
SCI_enableInterrupt(UART_BASE, SCI_INT_RXFF);
SCI_setFIFOInterruptLevel(UART_BASE, SCI_FIFO_TX0, SCI_FIFO_RX5);
SCI_enableFIFO(UART_BASE);
SCI_enableRxModule(UART_BASE);
SCI_enableModule(UART_BASE);
Interrupt_register(UART_INT_RX, &UartRxIsr);
//SCI_enableInterrupt(UART_BASE, SCI_INT_RXFF);
SCI_enableInterrupt(UART_BASE, SCI_INT_RXRDY_BRKDT); // 试图通过这个使能RXRDY的中断,但是没有成功
SCI_clearInterruptStatus(UART_BASE, SCI_INT_RXRDY_BRKDT);
Interrupt_enable(UART_INT_RX);
John Pan:
用轮询的方式也无法从串口读到数据
轮询的代码如下:
while(1) { if((SCI_getRxStatus(UART_BASE) & SCI_RXSTATUS_READY ) != 0) { tmpc = SCI_readCharBlockingNonFIFO(UART_BASE); uartRecvFlag = true; }
}