在stm32F103系列中:AFIO是重映射辅助时钟,如果仅仅是使用第二功能(如uart,spi,),不需要打开,使用第二功能打开GPIO和第二功能时钟。我反复测试是这样的
AFIO时钟由RCC_APB2ENR寄存器的位0控制;
APB2外设时钟使能寄存器(RCC_APB2ENR) 的第0位AFIOEN 辅助功能IO时钟使能在那些时候,需要开启呢?
---------------------------------
配置stm32的事件输出/外部中断/重映射的时候.就必须开启AFIO时钟.
假如使用的管脚里头默认复用的外设功能并不需要开AFIO时钟
说的很明白,操作AFIO的三类寄存器时需要开启:
1.事件控制寄存器(AFIO_EVCR)
2.复用重映射和调试I/O配置寄存器(AFIO_MAPR)
3.外部中断配置寄存器x(AFIO_EXTICRx)
这三类其实是AFIO的全部寄存器, AFIO_EVCR是事件相关的,AFIO_MAPR是与重映射和调试I/O相关的,AFIO_EXTICRx是与外部中断相关的。因此管脚重映射和调试I/O配置、外部中断、事件时需开启AFIO。
参考:http://blog.csdn.net/qq_14997473/article/details/47041147
切记:F4系列中并不是这样的