您好!
?CH573的串口使能1個串口中斷時(shí)一切正常,但是當(dāng)使能2個或以上串口中斷時(shí)就出現(xiàn)程序不斷重啟的狀況,應(yīng)該怎么解決?我要同時(shí)使用4個串口中斷,是否需要設(shè)置中斷優(yōu)先級?
串口初始化的代碼如下:
void Uart0_Init(void)
{
? ? //---UART0 INIT-------------波特率512000
? ? GPIOPinRemap( DISABLE, RB_PIN_UART0 );? //不使能重映射
? ? //TXD gpio初始化
? ? GPIOB_SetBits(bTXD0);
? ? GPIOB_ModeCfg(bTXD0, GPIO_ModeOut_PP_5mA);
? ? //RXD gpio初始化
? ? GPIOB_SetBits(bRXD0);
? ? GPIOB_ModeCfg(bRXD0, GPIO_ModeIN_PU);
? ? //uart0 init
? ? UART0_DefInit();
#ifdef LDS_ENABLE
? ? ? ? //enable interupt
? ? ? ? UART0_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_LINE_STAT);
? ? ? ? PFIC_EnableIRQ(UART0_IRQn);
? ? ? ? //PFIC_SetPriority(UART0_IRQn,0x40);? //設(shè)置為中優(yōu)先級中斷
#endif
? ? }
void Uart1_Init(void)
{
? ? //---UART1 INIT-------------波特率115200
? ? //---GPS-----
? ? GPIOPinRemap( DISABLE, RB_PIN_UART1 );? //不使能重映射
? ? //TXD gpio初始化
? ? GPIOA_SetBits(bTXD1);
? ? GPIOA_ModeCfg(bTXD1, GPIO_ModeOut_PP_5mA);
? ? //RXD gpio初始化
? ? GPIOA_SetBits(bRXD1);
? ? GPIOA_ModeCfg(bRXD1, GPIO_ModeIN_PU);
? ? //uart1 init
? ? UART1_DefInit();
#ifdef GPS_ENABLE
? ? //enable interupt
? ? UART1_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_LINE_STAT);
? ? PFIC_EnableIRQ(UART1_IRQn);
#endif
}
謝謝!