你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F051 ADC1采样时间和采样值稳定性设计

[复制链接]
fanhoufa 提问时间:2014-10-23 16:31 /
本帖最后由 fanhoufa 于 2014-10-23 16:37 编辑

STM32F0 如果用ADC1做AD采样8路模拟值 ,跟据资料如果设定12B的精度,时间最快是2US,如果用连续模式采样8路.16US,这样的采样值稳定吗? /* ADC1 registers reset ----------------------------------------------------*/
  ADC_DeInit(ADC1);
  /* ADC Calibration */
  ADC_GetCalibrationFactor(ADC1);  
  
  /* Enable ADC1 */
  ADC_Cmd(ADC1, ENABLE);
  /* Wait the ADRDY falg */
  while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADRDY));
  {
  }
  
   /* ADC1 configuration ------------------------------------------------------*/
  ADC_StructInit(&ADC_InitStructure);
  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;  // ½ûÓÃÁ¬ÐøÄ£Ê½
          ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Left; // Êý¾Ý×ó¶ÔÆë
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_TRGO; // T1 ´¥·¨×ª»»
  ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//
          ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; // 12λ¾«¶È

  ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;// ÏòÉÏɨÃè 0-18
  ADC_Init(ADC1, &ADC_InitStructure);
  ADC_ChannelConfig(ADC1, ADC_Channel_0 | ADC_Channel_2| ADC_Channel_3  
                          | ADC_Channel_4 | ADC_Channel_5 | ADC_Channel_6| ADC_Channel_7| ADC_Channel_8,  
                          ADC_SampleTime_13_5Cycles);   
        
           ADC_GetCalibrationFactor(ADC1);                                 // ʹÄÜǰУ׼
    ADC_Cmd(ADC1, ENABLE);                                          // ʹÄÜADC1
    while(ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN) == RESET);         // µÈ ADC1ʹÄÜÍê³É
  

  ADC_OverrunModeCmd(ADC1,ENABLE); // ʹÄÜÊý¾Ý ģʽ
  
        ADC_DMACmd(ADC1, ENABLE);                                       // ʹÄÜADC_DMA
  ADC_DMARequestModeConfig(ADC1, ADC_DMAMode_Circular);           // ÅäÖÃDMAģʽΪѭ»·Ä£Ê½
  ADC_StartOfConversion(ADC1);                                    // Æô¶¯Ò»´Îת»»
1 收藏 评论2 发布时间:2014-10-23 16:31

举报

2个回答
fanhoufa 回答时间:2014-10-23 16:32:37

  /* ADC1 registers reset ----------------------------------------------------*/
  ADC_DeInit(ADC1);
  /* ADC Calibration */
  ADC_GetCalibrationFactor(ADC1);  
  
  /* Enable ADC1 */
  ADC_Cmd(ADC1, ENABLE);
  /* Wait the ADRDY falg */
  while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADRDY));
  {
  }
  
   /* ADC1 configuration ------------------------------------------------------*/
  ADC_StructInit(&ADC_InitStructure);
  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;  // ½ûÓÃÁ¬ÐøÄ£Ê½
          ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Left; // Êý¾Ý×ó¶ÔÆë
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_TRGO; // T1 ´¥·¨×ª»»
  ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//
          ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; // 12λ¾«¶È

  ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;// ÏòÉÏɨÃè 0-18
  ADC_Init(ADC1, &ADC_InitStructure);
  ADC_ChannelConfig(ADC1, ADC_Channel_0 | ADC_Channel_2| ADC_Channel_3  
                          | ADC_Channel_4 | ADC_Channel_5 | ADC_Channel_6| ADC_Channel_7| ADC_Channel_8,  
                          ADC_SampleTime_13_5Cycles);   
       
           ADC_GetCalibrationFactor(ADC1);                                 // ʹÄÜǰУ׼
    ADC_Cmd(ADC1, ENABLE);                                          // ʹÄÜADC1
    while(ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN) == RESET);         // µÈ ADC1ʹÄÜÍê³É
  

  ADC_OverrunModeCmd(ADC1,ENABLE); // ʹÄÜÊý¾Ý ģʽ
  
        ADC_DMACmd(ADC1, ENABLE);                                       // ʹÄÜADC_DMA
  ADC_DMARequestModeConfig(ADC1, ADC_DMAMode_Circular);           // ÅäÖÃDMAģʽΪѭ»·Ä£Ê½
  ADC_StartOfConversion(ADC1);                                    // Æô¶¯Ò»´Îת»»
               
奔跑小蜗牛 回答时间:2014-10-31 09:32:07
stm32内部AD是逐次逼近型的,这种AD特点就是速度快,稳定一般,你单次测量AD值是不稳的,要想稳定就要添加滤波算法。要想提高分辨率,可以以过采样方式牺牲速度换取高分辨率。

 相对于逐次逼近型AD,ΔΣ型AD是转换速度慢,分辨率高,单次采样值比较稳定。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版