很多人在問,RCC_APB2ENR中的AFIO位什么時候需要開啟?
有的人說用到外部中斷的時候打開,有的人說引腳重映射的時候打開,等等。這些答案都是片面的,而且總感覺模糊不清。甚至,有些人錯誤的以為,是不是用到引腳復用功能的時候就打開呢?
不用著急,瑞生今天給大家講個明白。
請看一下STM32的目錄,如下圖所示,找到AFIO。
我們點擊目錄前面的“+”號,打開AFIO的寄存器,如下圖所示:
好了,答案出來了:當你需要配置AFIO這些寄存器的時候,就需要把RCC_APB2ENR寄存器的AFIO位置1打開AFIO時鐘。
看看這些寄存器的定義,你就明白了,這些寄存器用來“事件控制”“重映射”“調(diào)試IO配置”“外部中斷”。
總結:當你需要配置這些AFIO寄存器的時候,就需要打開RCC_APB2ENR寄存器的AFIO時鐘。并不是用到引腳復用功能的時候打開!
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);