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