查看: 7221|回复: 2

DMA中断用于接收串口数据

[复制链接]

5

主题

12

帖子

69

积分

中级工程师

Rank: 2

积分
69
发表于 2021-4-27 16:36:38 | 显示全部楼层 |阅读模式
请教在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这个函数。

回复

使用道具 举报

154

主题

846

帖子

4624

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4624
发表于 2021-4-28 14:30:05 | 显示全部楼层
这个,没有全部程序,不好说。全局中断有没有开
回复

使用道具 举报

0

主题

4

帖子

37

积分

初级工程师

Rank: 1

积分
37
发表于 2021-5-19 15:18:25 | 显示全部楼层
你好,大佬,你的DMA中断成功了吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表