STM32的V3.5庫Systick優先級設置的問題
NVIC_SystemHandlerPriorityCon
查詢結果總結如下:
1. STM32中斷優先級是使用4-bit來表示的,即總共有16個級別。
2. 優先級分為2個部分:搶先優先級和子優先級,上述的4個bit可以靈活分配給搶先優先級和子優先級,比如,1個bit表示搶先優先級,則剩余3個bit表示子優先級。固件庫中對應的函數是:NVIC_PriorityGroupConfig()。
3. 中斷分為內核中斷和芯片(STM32)中斷,配置的寄存器位置是不同的,芯片中斷的配置使用NVIC,內核中斷(比如systick)的配置使用SCB。
4. 內核中斷優先級設置使用函數:NVIC_SetPriority(),此函數需要一個表示優先級的參數,可以利用NVIC_EncodePriority()這個函數生成,比如:
NVIC_SetPriority(SysTick_IRQn,
NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 0, 1));
//搶先優先級:0(最高);子優先級:1(中)
評論