|
请教在DMA中断函数中如何接收串口数据。
//全局中断打开了。
void MF_NVIC_Init(void)
{
NVIC_ConfigTypeDef InterruptConfigStruct;
InterruptConfigStruct.preemptPriority = 2;
NVIC_Init(&InterruptConfigStruct,DMA_IRQn );
}
//DMA相关的配置也设置了。
FL_DMA_Enable(DMA);
Uart0DMA_Config(DMARxData,5);
FL_UART_EnableRX(UART0);
//接收中断函数如下:
void DMA_IRQHandler(void)
{
uint8_t i;
if (!FL_DMA_IsActiveFlag_TransferComplete(DMA, FL_DMA_CHANNEL_1))
{
for(i=0; i<5; i++)
{
FL_UART_WriteTXBuff(UART0, DMARxData[i]); //将发送数据写入发送寄存器
while(SET != FL_UART_IsActiveFlag_TXBuffEmpty(UART0)); //等待发送完成
}
FL_DMA_ClearFlag_TransferComplete(DMA, FL_DMA_CHANNEL_1);
}
}
现象就是收到数据后,不进串口DMA_IRQHandler这个函数。
|
|