閱讀nvic:系統(tǒng)中斷管理。
我的理解——管理系統(tǒng)內(nèi)部的中斷,負責打開和關(guān)閉中斷。
基礎應用1,中斷的初始化函數(shù),包括設置中斷向量表位置,和開啟所需的中斷兩部分。所有程序中必須的。
用法: void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;//中斷管理恢復默認參數(shù)
#ifdef VECT_TAB_RAM
//如果C/C++ CompilerPreprocessorDefined symbols中的定義了VECT_TAB_RAM(見程序庫更改內(nèi)容的表格)
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); //則在RAM調(diào)試
#else //如果沒有定義VECT_TAB_RAM
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);//則在Flash里調(diào)試
#endif //結(jié)束判斷語句
//以下為中斷的開啟過程,不是所有程序必須的。
//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//設置NVIC優(yōu)先級分組,方式。
//注:一共16個優(yōu)先級,分為搶占式和響應式。兩種優(yōu)先級所占的數(shù)量由此代碼確定,NVIC_PriorityGroup_x可以是0、1、 2、3、4,分別代表搶占優(yōu)先級有1、2、4、8、16個和響應優(yōu)先級有16、8、4、2、1個。規(guī)定兩種優(yōu)先級的數(shù)量后,所有的中斷級別必須在其中選擇,搶占級別高的會打斷其他中斷優(yōu)先執(zhí)行,而響應級別高的會在其他中斷執(zhí)行完優(yōu)先執(zhí)行。
//NVIC_InitStructure.NVIC_IRQChannel = 中斷通道名;
//開中斷,中斷名稱見函數(shù)庫
//NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
//搶占優(yōu)先級
//NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
//響應優(yōu)先級
//NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//啟動此通道的中斷
//NVIC_Init(&NVIC_InitStructure); //中斷初始化
}