我在这里设置了adc样本时间周期:
ADC_RegularChannelConfig(ADC1, ADC_Channel_17, 1, ADC_SampleTime_71Cycles5);
如何从stm32f103中计算出ADC的采样率?
您没有提供足够的信息来提供确切的数字 . 但在这里你应该知道什么 . 您已选择采样时间为71.5个ADC时钟周期 . ADC时钟由PCLK2通过ADC预分频器产生 . ADC预分频器位于RCC_CFGR寄存器中 . 例如,如果PCLK2为72MHz且ADC预分频比为6,则ADC时钟为12MHz . 采样时间为71.5个周期,转换为71.5 / 12~6us
每个通道的采样时间可以从ADC CLK计算,如参考手册的“逐个通道可编程采样时间”部分所述:
ADC对输入电压进行采样,持续多个ADC_CLK周期,可以使用ADC_SMPR1和ADC_SMPR2寄存器中的SMP [2:0]位进行修改 . 可以使用不同的采样时间对每个通道进行采样 . 总转换时间计算如下:Tconv =采样时间12.5个周期示例:ADCCLK = 14 MHz,采样时间为1.5个周期:Tconv = 1.5 12.5 = 14个周期=1μs
在扫描模式下,一个ADC的采样率为:
1 /(每个启用的通道的Tconv总和)
要设置“特定”采样时间,可以使用外部触发转换,并将定时器更新事件作为触发器 .
2 回答
您没有提供足够的信息来提供确切的数字 . 但在这里你应该知道什么 . 您已选择采样时间为71.5个ADC时钟周期 . ADC时钟由PCLK2通过ADC预分频器产生 . ADC预分频器位于RCC_CFGR寄存器中 . 例如,如果PCLK2为72MHz且ADC预分频比为6,则ADC时钟为12MHz . 采样时间为71.5个周期,转换为71.5 / 12~6us
每个通道的采样时间可以从ADC CLK计算,如参考手册的“逐个通道可编程采样时间”部分所述:
在扫描模式下,一个ADC的采样率为:
要设置“特定”采样时间,可以使用外部触发转换,并将定时器更新事件作为触发器 .