有工程师在做STM32G0系列MCU开发,当配置ADC通道时,会遇到一个问题:在CUBEMX配置ADC_15IN~ADC_18IN,发现配置出来的通道呈黄色(不可用),再看左边categories进阶配置,发现ADC1的IN_15~IN_18压根就是灰色,不可选中。这就有点犯难了,这些通道真的不能用吗?手册上明明写了这些IO口可以复用作ADC的啊?它们去哪儿了?
解决这个问题之前,我们需要了解STM32G0的ADC通道选择模式。和其它MCU不同,STM32G0专门设置了2种通道选择模式(祥见RM0444 15.3.8节):
Sequencer not fully configurable(不完全序列模式)
在这个模式下,ADC通道轮询次序是按照通道号从小到大(或从大到小)的顺序依次轮询的,不可改变。该模式支持AN0~AN18通道(即所有通道都可用)
Sequencer fully configurable(完全序列模式)
在这个模式下,用户可自己配置通道轮询的次序。但该模式明确指出,只支持AN0~AN14
而CUBEMX ADC默认的通道选择模式就是Sequencer fully configurable(完全序列模式),所以导致初始化时AN15~AN18不可用。
知道了原因,再配置AN15~AN18就不难了。我们只需要将任一可用的ADC通道选中
在它的下面进阶配置里,有sequencer选项。只需将sequencer set to not fully configurable(配置成不完全序列模式)
这时,1N15~1N18就变为可选了,就可以应用了。
评论