This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UART 接收中断初始化有问题,进不了中断!请老师帮我看看

Expert 2137 points
Other Parts Discussed in Thread: SPRC133

void UART_INIT()
{
CSL_UartObj uartObj;
CSL_UartHandle hUart;
CSL_UartSetup uartSetup =
{
/* Input clock freq in MHz */
200000000,
/* Baud rate */
115200,
/* Word length of 8 */
CSL_UART_WORD8,
/* To generate 1 stop bit */
0,
/* Disable the parity */
CSL_UART_DISABLE_PARITY,
/* Disable fifo */
/* Enable trigger 14 fifo */
CSL_UART_FIFO_DMA1_DISABLE_TRIG14,
/* Loop Back enable */
CSL_UART_NO_LOOPBACK,
/* No auto flow control*/
CSL_UART_NO_AFE ,
/* No RTS */
CSL_UART_NO_RTS ,
};
UART_init(&uartObj,CSL_UART_INST_0,UART_POLLED);
/* Handle created */
hUart = (CSL_UartHandle)(&uartObj);
/* Configure UART registers using setup structure */
UART_setup(hUart,&uartSetup);
/* Enable the UART Events */
UART_eventEnable(hUart, CSL_UART_RECVOR_REG_DATA_INTERRUPT);
}

void UART_INTC_INIT()
{
// CSL_UartIsrAddr isrAddr;
//
// /* Configure and Register the UART interrupts */
// isrAddr.rbiAddr = uart_rxIsr;
// isrAddr.tbeiAddr = uart_txIsr;
// isrAddr.ctoi = uart_ctoIsr;
// isrAddr.lsiAddr = uart_lsiIsr;

/* Disable interrupt */
IRQ_globalDisable(); //全局中断关闭(INTM=1)

/* Clear any pending interrupts */
IRQ_clearAll();

/* Disable all the interrupts */
IRQ_disableAll();

IRQ_setVecs((Uint32)(&VECSTART)); //设置中断向量入口

/* Configuring Interrupt */
IRQ_plug (UART_EVENT, &UART_intrDispatch);

/* Enabling Interrupt */
IRQ_enable(UART_EVENT);

/* Enabling Interrupt */
IRQ_globalEnable(); //全局中断打开(INTM=0)

}

/* Interrupt vector start address */
void VECSTART();
interrupt void UART_intrDispatch(void)
{

IRQ_disable(UART_EVENT);

UART_SEND(0xcc);
IRQ_enable(UART_EVENT);

}