什么时候使用“RCC_APBXPeriph_AFIO”

什么时候需要开启复用时钟:

(1)使用EXTI

(2)重映射(用到外设的重映射功能时才需要使能AFIO的时钟

举例:重映射USART2

USART2的TX/RX在PA.2/3.但是,PA.2已经被Timer2的channel3使用.这时,如果还想使用USART2,但又不想影响Timer2的使用,这就需要把USART2的TX/RX重映射到PD.5/6。

映射库函数的调用过程

(1)使能被重新映射到的I/O端口时钟

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

(2)使能被重新映射的外设时钟

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

(3)使能AFIO功能的时钟(勿忘!)

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

(4)进行重映射

    GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);

参考博客:https://blog.csdn.net/slj_win/article/details/17315041

猜你喜欢

转载自www.cnblogs.com/darren-pty/p/10528315.html