打印

多路ADC采集DMA传输,DMA传输标志位调试是不变化的,请问这是为什么呀?

[复制链接]
311|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
你说说说说|  楼主 | 2018-7-6 18:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
3路ADC通道采集电压,并由DMA传输至内存,在DMA中断服务函数里设置了一个标志位,但是连续调试的时候没有变化,请问这是问什么?
DMA中断服务函数:
void DMA2_Stream0_IRQHandler(void)                                             //DMA2_Stream0中断服务函数
{
int i,j;
if(DMA_GetITStatus(DMA2_Stream0, DMA_IT_TCIF0))                               //DMA2_Stream0传输完成标志
{
    for(i=0;i<2000;i++)
    {
      for(j=0;j<3;j++)
      {
        ADC_Con[j] = (float)ADC_Raw[j]*(3.3/4096);
      }
    }
    flag_dma = 1;
    DMA_ClearITPendingBit(DMA2_Stream0, DMA_IT_TCIF0);                          //清除传输完成中断标志
}
}


main函数:
int main(void)
{
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);   //设置系统中断优先级分组1
  delay_init(168);                                  //延时初始化
  uart_init(115200);                                //初始化串口波特率为115200
  KEY_Init();                                                                      //初始化按键
  ADC_Config();                                     //初始化ADC
  DMA_Config();                                     //初始化DMA
  Timer_Init();                                     //TIM2配置
  printf("======测试======
");
        while(1)
  {
                if(flag_dma == 1)
                {
      printf("%u
",flag_dma);
      flag_dma = 0;
      printf("%u
",flag_dma);
    }
  }
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

355

主题

355

帖子

1

粉丝