STM32G0,你的ADC_IN15/16/17/18哪里去了?

有工程师在做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就变为可选了,就可以应用了。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论