我想求证一个问题,是不是BF533的SPORT RX和TX中断不能同时开启(当然不是指同时发生)我将初始化函数写成这样写
void Init_Interrupts(void)
{
// Set Sport0 RX (DMA1) interrupt priority to 2 = IVG9
*pSIC_IAR0 = 0xffffffff;
*pSIC_IAR1 = 0xfffff22f;
*pSIC_IAR2 = 0xffffffff;
// assign ISRs to interrupt vectors
// Sport0 RX ISR -> IVG 9
register_handler(ik_ivg9, Sport0_RX_ISR);
register_handler(ik_ivg9, Sport0_TX_ISR);
// enable Sport0 RX interrupt
*pSIC_IMASK = 0x00000600;
}
结果只有 Sport0_RX_ISR好使,而将初始化函数写成
void Init_Interrupts(void)
{
// Set Sport0 RX (DMA1) interrupt priority to 2 = IVG9
*pSIC_IAR0 = 0xffffffff;
*pSIC_IAR1 = 0xfffff22f;
*pSIC_IAR2 = 0xffffffff;
// assign ISRs to interrupt vectors
// Sport0 RX ISR -> IVG 9
register_handler(ik_ivg9, Sport0_RX_ISR);
register_handler(ik_ivg10, Sport0_TX_ISR);
// enable Sport0 RX interrupt
*pSIC_IMASK = 0x0000060
}结果还是只有 Sport0_RX_ISR好使,我尝试将DMA1(对应 Sport0_RX)在完成相应功能后不使能(即*pDMA1-COFIG=0x0000;)发现还是解决不了这个问题