STM32是一個功能強大的微控制器,豐富的外設,強大的功能注定設計師最初必須注意它的功耗問題,所以產生了時鐘,這很容易理解,就像我們的電腦,你會在使用時打開所有軟件使用么,難道你上個淘寶,你要把什么視頻軟件,游戲,也一起打開么,顯然不合理,費電,拖速度,stm32也是一樣,(在筆者現(xiàn)在學到先在,雖然也沒學多少)做什么都要打開相應時鐘(就像用鼠標雙擊打開相應軟件一樣)。時鐘分很多個,IO口的時鐘,打開以一組為單位。外設有串口時鐘,定時器時鐘,外部中斷復用時鐘,看門狗時鐘。
無論是什么功能都有相應時鐘,一定要正確打開。
對寄存器AFIO_EVCR,AFIO_MAPR和AFIO_EXTICRX進行讀寫操作前,應當首先打開AFIO的時鐘。參考《STM32中文參考手冊》第6.3.7節(jié)APB2外設時鐘使能寄存器(RCC_APB2ENR)。
(1)事件控制寄存器(AFIO_EVCR)
(2)復用重映射和調試I/O配置寄存器(AFIO_MAPR):當進行重映射,調試IO時則需要進行時鐘配置
(3)外部中斷配置寄存器1(AFIO_EXTICR1),外部中斷配置寄存器2(AFIO_EXTICR2)
外部中斷配置寄存器3(AFIO_EXTICR3)外部中斷配置寄存器4(AFIO_EXTICR4)
以上3種情況都要打開AFIO時鐘