STM32之ADC通道顺序设置
STM32F10X系列MCU的说明文档中对ADC通道顺序设置上说的比较简单,在做多通道采集项目且用DMA作为数据传输时,若是没有设置好通道顺序,那么有些通道的数据可能会采集不到,本人在做ADC实验时就遇到此问题,因此写下来作为总结
操作方法
- 01
在使用STM32的ADC多通道采样时,需要为每一个使用到的通道配置对应的转换顺序及采样时间。这些工作可以在STM32的固件库函数ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime)中设置,具体描述查看STM32固件库使用手册
- 02
参数Rank就是通道的采样顺序,比如通道10设置Rank为1表示在ADC工作是第一个采样的通道是ADC10,同样的如果同时分别设置通道10、11、12、13的Rank为1、2、3、4的话,在ADC工作在规则组扫描模式下,将会先采样ADC10通道,后面依次采样通道ADC11、ADC12、ADC13
- 03
假如通道ADC10、ADC11、ADC12、ADC13的通道号设置一样的话,那么DMA输出到内存得到的四个通道的值将是不确定的,四个值基本相同,如下图
- 04
分别设置好通道的采样顺序后,DMA端就可以精确的输出每一个通道的采样值,如下图
赞 (0)