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