很多人在问,RCC_APB2ENR中的AFIO位什么时候需要开启? 有的人说用到外部中断的时候打开,有的人说引脚重映射的时候打开,等等。这些答案都是片面的,而且总感觉模糊不清。甚至,有些人错误的以为,是不是用到引脚复用功能的时候就打开呢? 请看一下STM32的目录,如下图所示,找到AFIO。
我们点击目录前面的“+”号,打开AFIO的寄存器,如下图所示:
好了,答案出来了:当你需要配置AFIO这些寄存器的时候,就需要把RCC_APB2ENR寄存器的AFIO位置1打开AFIO时钟。 看看这些寄存器的定义,你就明白了,这些寄存器用来“事件控制”“重映射”“调试IO配置”“外部中断”。 总结:当你需要配置这些AFIO寄存器的时候,就需要打开RCC_APB2ENR寄存器的AFIO时钟。并不是用到引脚复用功能的时候打开! RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
|