👀“alternate ”备用的、可替代的,因此, AFIO可译为“备用功能I/O”,以备不时之需。 但是我们一般都理解为复用时钟,因为使用复用功能常常开启这个时钟,但是 串口也是复用,但是不需要开启这个时钟,为什么SPI相关的引脚也配置为复用但并没有开启AFIO时钟也能正常工作。所以AFIO时钟应该什么时候开呢?Why?
👀 跟 AFIO 相关的寄存器有: 1、 事件控制寄存器(AFIO_EVCR) 2、 复用重映射和调试I/O 配置寄存器(AFIO_MAPR) 3、 外部中断配置寄存器1(AFIO_EXTICR1) 4、 外部中断配置寄存器2(AFIO_EXTICR2) 5、 外部中断配置寄存器3(AFIO_EXTICR3) 6、 外部中断配置寄存器4(AFIO_EXTICR4) 👀注意:只有用到的外设涉及到了上述寄存器才要开启AFIO时钟,我们用串口时候,是复用了,但是并没有配置(AFIO_MAPR),所以不用开启那个时钟,但是开启了也没事,就是耗一些资源而已。 值得注意的是,当使用串口的重映射功能时候,就用到了那个寄存器,就得开启AFIO时钟。请看:👇 总之:复用不一定开启,重映射就要开启了。AFIO不要片面理解为复用,要理解它的英文含义。