还是BF548和BF561之间通过sport口通讯,发现,BF548接收BF561数据时,BF561的sport口接收中断能进去,但是BF561发送中断进不去,大神知道是啥原因呢?
/////////////////////////////////////////////////////////
void SPORT1_TX_ResetOn(void)
{
*pDMA2_3_CONFIG &= ~DMAEN;//停止发
*pSPORT1_TCR1&=~TSPEN;
ssync();
*pDMA2_3_CONFIG|=DMAEN;//开启发等待
*pSPORT1_TCR1|=TSPEN;
ssync();
}
void SPORT1_TX_Off(void)
{
*pDMA2_3_CONFIG &= ~DMAEN;//停止发
*pSPORT1_TCR1&=~TSPEN;
ssync();
}
void SPORT1_RX_ResetOn(void)
{
*pDMA2_2_CONFIG &= ~DMAEN;//停止受
*pSPORT1_RCR1&=~RSPEN;
ssync();
*pDMA2_2_CONFIG|=DMAEN;//开启收等待
*pSPORT1_RCR1|=RSPEN;
ssync();
}
void SPORT1_RX_Off(void)
{
*pDMA2_2_CONFIG &= ~DMAEN;//停止收
*pSPORT1_RCR1&=~RSPEN;
ssync();
}
/*****************************************************************************
* 函数名 : SPORT1_ISR
* 返回值 : 无
* 参变量 : 空
* 功 能 : SPORT1-DMA 的中断服务函数
******************************************************************************/
EX_INTERRUPT_HANDLER(SPORT1_ISR)
{
if(*pSICA_ISR0&SIC_MASK(25))//RX
{
*pDMA2_2_IRQ_STATUS = 0x3;//清中断标志
SPORT1_RX_Off();
}
if(*pSICA_ISR0&SIC_MASK(26))//TX
{
*pDMA2_3_IRQ_STATUS = 0x3;//清中断标志
SPORT1_TX_Off();
}
}
/*****************************************************************************
* 函数名 : SPORT1_init
* 返回值 : 无
* 参变量 : 空
* 功 能 : 配置SPORT1 并生成DMA链表
******************************************************************************/
void SPORT1_init(void)
{
*pDMA2_2_CONFIG &= ~DMAEN;//停止收
*pDMA2_3_CONFIG &= ~DMAEN;//停止发
*pSPORT1_RCR2 = 0x1F;//32bit
*pSPORT1_RCR1 = RCKFE | LARFS | LRFS | RFSR ;
*pSPORT1_TCR2 = 0x1F;//32bit
*pSPORT1_TCR1 = TCKFE | LATFS | LTFS | TFSR ;
*pEVT8 = SPORT1_ISR;//中断向量
*pSICA_IMASK0 |= SIC_MASK(25);//使能系统中断通道
*pSICA_IMASK0 |= SIC_MASK(26);//使能系统中断通道
//收
*pDMA2_2_CONFIG =WNR | WDSIZE_16 | DMA2D | DI_EN | FLOW_STOP;
*pDMA2_2_START_ADDR = (u32*)ParaDotA_Data;
*pDMA2_2_X_COUNT = 320*2/2;
*pDMA2_2_X_MODIFY = 2;
*pDMA2_2_Y_COUNT = 256;
*pDMA2_2_Y_MODIFY = 2;
//发
*pDMA2_3_CONFIG = WDSIZE_16 | DMA2D | DI_EN | FLOW_STOP;
*pDMA2_3_START_ADDR = (u32*)ParaDotA_Data;
*pDMA2_3_X_COUNT = 320*2/2;
*pDMA2_3_X_MODIFY = 2;
*pDMA2_3_Y_COUNT = 256;
*pDMA2_3_Y_MODIFY = 2
}