dingxmhan 发表于 2017-8-1 21:23:36

STM32F10X的ADC规则组采样,通道之间的采样间隔是多少呢?

我使用STM32F1的ADC1采集10路ADC数据,使用TIM触发采集。每次触发采集把每个通道采集一遍,现在比较疑惑的是每次采一遍这个ADC通道与通道之间的间隔是怎么计算的呢,可以看做同时采样逐个转换的吗?


ADC_InitTypeDef ADC_InitStructure;//定义ADC初始化结构体变量
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
      RCC_ADCCLKConfig(RCC_PCLK2_Div6);//12M
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//ADC1和ADC2工作在独立模式
ADC_InitStructure.ADC_ScanConvMode = ENABLE; //使能扫描
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//ADC转换工作在连续模式
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T2_CC2;//有软件控制转换
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Left;//转换数据左对齐
ADC_InitStructure.ADC_NbrOfChannel = 12;//10;//转换通道为通道1
ADC_Init(ADC1, &ADC_InitStructure); //初始化ADC
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_41Cycles5);
      ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 2, ADC_SampleTime_41Cycles5);
      ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 3, ADC_SampleTime_41Cycles5);
      ADC_RegularChannelConfig(ADC1, ADC_Channel_3, 4, ADC_SampleTime_41Cycles5);
      ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 5, ADC_SampleTime_41Cycles5);
      ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 6, ADC_SampleTime_41Cycles5);
      ADC_RegularChannelConfig(ADC1, ADC_Channel_6, 7, ADC_SampleTime_41Cycles5);
      ADC_RegularChannelConfig(ADC1, ADC_Channel_7, 8, ADC_SampleTime_41Cycles5);
      ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 9, ADC_SampleTime_41Cycles5);
      ADC_RegularChannelConfig(ADC1, ADC_Channel_9, 10, ADC_SampleTime_41Cycles5);

无薪税绵 发表于 2017-12-7 10:46:36

各个通道之间是独立的,应该是没有间隔的吧。
除非硬件上有干扰存在,才需要增加间隔时间。

聪神聪 发表于 2017-12-7 11:19:51

你的ADC_NbrOfChannel =12,但你只配置了10路AD;另外你是左对齐 不知道有啥用;STM32的ADC是逐次比较型,规则通道应该采集完一路紧接着采集第二路吧,间隔多少没见有说明,但肯定不是同时采集的,你只用ADC1;大多数人关心的是每路规则通道两次采集时间间隔吧:)

qi夏天 发表于 2017-12-7 11:24:17

我理解的是按顺序,每个通道之间的时间间隔是你的采样周期时间???

zhjb1 发表于 2017-12-7 21:06:59

本帖最后由 zhjb1 于 2017-12-9 16:04 编辑

独立ADC采样之间应该没有间隔,同一个ADC采用通道听到采用需要满足逐次逼近ADC的最小采样间隔。
页: [1]
查看完整版本: STM32F10X的ADC规则组采样,通道之间的采样间隔是多少呢?