“配置exti外设时,开启的是afio的时钟”可能是因为:
配置的顺序不对,使能时钟不是在最开始。
要先开启STM32外设模块时钟,再对其外设模块初始化配置
每次芯片复位后,所有外设时钟都被关闭( SRAM 和 Flash 接口除外)。使用外设前,必须在 RCC_AHBxENR 或 RCC_APBxENR 寄存器中使能其时钟。
由AFIO时钟管理的寄存器有AFIO_EVCR(时间控制寄存器)、AFIO_MAPR(备用功能重映射和调试IO配置寄存器)、AFIO_EXTICRX(外部中断配置寄存器),所以在配置EXTI时需要先开启AFIO时钟。
因为EXTI本身并不属于内外设,它更多的是充当一种传输介质,把GPIO的信号连接到NVIC,而这个控制它连接的角色,其实是由AFIO来担当的。所以开启的是AFIO的时钟。