打印

AD多路采集问题

[复制链接]
3586|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wakaoo|  楼主 | 2008-10-2 15:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AD, ADC, dc, ADC1, ST
现在能采集到5路通道的值到数组里,但是如何分开哪个通道是哪个通道的。有高手做出来了么?请指点下。

  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  ADC_InitStructure.ADC_ScanConvMode = ENABLE;
  ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  ADC_InitStructure.ADC_NbrOfChannel = 5;
  ADC_Init(ADC1, &ADC_InitStructure);

  /* ADC1 regular channel14 configuration */ 
  ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_55Cycles5);
  ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 2, ADC_SampleTime_55Cycles5);
  ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 3, ADC_SampleTime_55Cycles5);
  ADC_RegularChannelConfig(ADC1, ADC_Channel_13, 4, ADC_SampleTime_55Cycles5);
  ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 5, ADC_SampleTime_55Cycles5);
  
  /* Enable ADC1 DMA */
 ADC_DMACmd(ADC1, ENABLE);
  
  /* Enable ADC1 */
  ADC_Cmd(ADC1, ENABLE);

  ADC_ITConfig(ADC1, ADC_IT_EOC | ADC_IT_JEOC , ENABLE);
  
  /* Enable ADC1 reset calibaration register */   
  ADC_ResetCalibration(ADC1);
  /* Check the end of ADC1 reset calibration register */
  while(ADC_GetResetCalibrationStatus(ADC1));

  /* Start ADC1 calibaration */
  ADC_StartCalibration(ADC1);
  /* Check the end of ADC1 calibration */
  while(ADC_GetCalibrationStatus(ADC1));
     
  /* Start ADC1 Software Conversion */ 
  ADC_SoftwareStartConvCmd(ADC1, ENABLE);

  
    
 
  while (1)
  {
    for(i = 0; i < 5; ++i)
      {
      
          while(ADC_GetFlagStatus(ADC1, ADC_FLAG_JEOC) == SET); 
         
          ADC_ConvertedValue =ADC_GetConversionValue(ADC1);
      }
    
  }
  
}

沙发
freefish| | 2008-10-7 19:42 | 只看该作者

实话说,不知道

因为你打开了DMA!如果不打开DMA,数组中的数据顺序是对的,但是在DMA打开后,会自动进行DMA传输,并清除转换结束标志。其实用了DMA后再取数更是画蛇添足,只要把ADC_ConvertedValue告诉DMA,并把缓冲区设置为5,在DMA的中断里取数据就可以了。也可以用两个ADC,完成后取高16位就是ADC2的结果,可以节约时间,每次转换为6.2uS。

使用特权

评论回复
板凳
simon87155| | 2008-10-9 15:10 | 只看该作者

你好,找我吧

我们是ST的代理,已与多家STM32客人在合作,经验丰富,可以提供你需要的帮助,需要在STM32上了解的请与我联系,谢谢!

邓世宏 
Simon Deng
  文晔集团/庆成企业有限公司
*************************************************************************************
地址:深圳南山区科技园**区南区南一道创维大厦C区3楼
TEL:0755-2674 3880 转6139   FAX:0755-2674 4053
M/P:13602587155
E-mail: simon.deng@wtmec.com
Http: www.qce.co.hk    www.wtmec.com
MSN: Sac87155@hotmail.com
Skype: pcicsz

使用特权

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

本版积分规则

11

主题

18

帖子

0

粉丝