有些STM32用戶,尤其是那些用過基于ARM Cortx-M3/M4/M7內(nèi)核的STM32 MCU的用戶,在使用基于M0/M0+內(nèi)核的STM32系列并通過STM32CubeMx進行NVIC配置時,不難發(fā)現(xiàn)一個問題,那就是怎么沒有中斷子優(yōu)先級【或稱響應(yīng)優(yōu)先級、副優(yōu)先級等】的配置?!【當然,很多時候我們或許沒有關(guān)注子優(yōu)先級】如下圖所示,只看到搶占優(yōu)先級的配置,看不到子優(yōu)先級的配置項。
上圖是我基于STM32L0系列芯片的配置,該系列芯片是基于ARM Cortex-M0+內(nèi)核的。我們再看看下圖的NVIC配置頁面,顯然可以看到搶占優(yōu)先級【Preemption Priority】和子優(yōu)先級【Sub
Priority】的配置項及相關(guān)信息。
上圖是我基于STM32G4系列芯片的NVIC配置頁面。該系列的內(nèi)核是ARM Cortex-M4。
當我們使用STM32系列芯片并通過CubeMx圖形化工具進行NVIC配置時,相應(yīng)界面有無子優(yōu)先級的配置,取決于該系列芯片所用的ARM Cortex內(nèi)核。如果說所用STM32系列是基于ARM Cortex-M0或M0+內(nèi)核的,在進行NVIC配置時是沒有子優(yōu)先級可以配置的。
ARM Cortex-M0或M0+內(nèi)核的中斷優(yōu)先級控制寄存器實際有效位就是2位,全部用來對各個中斷/異常做搶占優(yōu)先級配置,不額外劃分子優(yōu)先級的配置。
也就是說,基于ARM Cortex-M0或M0+內(nèi)核的STM32 MCU的NVIC配置不會有子優(yōu)先級的概念和配置,對于優(yōu)先級可配置的中斷而言,總共就4個可搶占優(yōu)先級。下圖是基于ARM Cortex-M0或M0+內(nèi)核的STM32系列展示。當然,STM32系列涉及的內(nèi)核很多,遠不止下面這些,還有M4/M7/M33等。
而ARM Cortex-M3、M4、M7內(nèi)核的中斷優(yōu)先級配置寄存器的有效位為4位,同時還可以基于該4位做優(yōu)先級的分組,進而引出搶占優(yōu)先級和子優(yōu)先級。
-
芯片
+關(guān)注
關(guān)注
459文章
52145瀏覽量
435931 -
mcu
+關(guān)注
關(guān)注
146文章
17824瀏覽量
360180 -
ARM
+關(guān)注
關(guān)注
134文章
9304瀏覽量
374903 -
STM32
+關(guān)注
關(guān)注
2289文章
11011瀏覽量
362274
發(fā)布評論請先 登錄
STM32 MCU通過STM32CubeMx配置NVIC怎么沒有中斷子優(yōu)先級選項

STM32F103的寄存器NVIC_IPRx搶占優(yōu)先級和子優(yōu)先級是怎么設(shè)置的?
[轉(zhuǎn)] STN32搶占優(yōu)先級與副優(yōu)先級及中斷優(yōu)先級NVIC理解
UCOS3的串口優(yōu)先級配置問題如何解決
中斷優(yōu)先級配置的函數(shù)
stm32配置中斷的優(yōu)先級問題
NVIC中斷優(yōu)先級分組
STM32 NVIC中斷優(yōu)先級設(shè)置的步驟有哪些
關(guān)于STM32H725 NVIC優(yōu)先級和次優(yōu)先級問題求解
2021-04-16 NVIC中斷優(yōu)先級管理

STM32NVIC中斷優(yōu)先級

STM32NVIC中斷優(yōu)先級管理+思維導(dǎo)圖

STM32中斷沒有子優(yōu)先級?

評論