STM cubemx STM32F1 ADC多通道采集(非DMA)
ADC模式介绍:
扫描模式: 多通道采集必须开启,这一项CUBE已经默认设置好了。这个模式就是自动扫描你开启的所有通道进行转换,直至转换完。但是这种连续性是可以被打断的,所以就引出了间断模式。
连续模式: 在CUBE中选中ENABLE就是连续模式,DISABLE就是单次模式。这个模式顾名思义,如果是连续模式那么就是一直在扫描多通道进行采集;如果是单次模式,多通道扫描采集一次后就停止采集了不会从头再来。
间断模式: 可以将多个通道进行分组,例如你开启了IN0~4通道,那么你可以配置IN0和IN1为一组,IN2和IN3为一直进行采集。
**
轮训方式多通道采集:
**
3个通道,非DMA必须满足:扫描模式+单次转换模式+间断转换模式(每个间断组一个通道)。才能实现多次扫描。将Number Of Discontinuous Conversions为1,也就是每个通道分成了一个组。
代码实现 三个通道轮流扫描:
***
调用hal库接口函数也需要注意,HAL_ADC_Start一定要放在for里面,即每一个通道都要触发。四个通道都采集完了,再去调用HAL_ADC_Stop(&hadc1);结束本次ADC采集。