接觸中斷,感覺模模糊糊,似懂非懂的,首先CM3支持256個中斷,包括16個內核中斷和240個外部中斷,但是STM32F103系列最后需要控制的只是60個可屏蔽中斷,在MDK(編譯軟件)里面定義了NVIC結構體
這就是設置中斷用到了寄存器(詳細106頁),通過相關的函數進行管理和配置(NVIC_Group,NVIC_Init)在sys.c里面有設置,但是外部中斷的設置還需要配置其它的寄存器,
(詳細介紹在109頁),通過配置這些寄存器就能正常控制外部中斷,但是外部IO口的中斷還需要一個寄存器的配置,就是IO口復用里面的中斷配置寄存器EXTICR
通過這個寄存器的設置使得16個中斷線可以控制所有的IO口,設置該寄存器的函數是,void Ex_NVIC_Config(u8 GPIOx,u8 BITx,u8 Trim);到時候我們直接調用就行。 將IO口設置成外部中斷需要以下幾個步驟:1.初始化IO口為輸入,2.開啟IO口復用時鐘,設置IO口與中斷線的映射關系,就是配置EXTICR,3.設置IO口的觸發條件,4.配置中斷分組,并使能中斷,5.編寫中斷服務函數
|