那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么有些STM32中斷沒有子優先級?

strongerHuang ? 來源:strongerHuang ? 2023-10-17 15:50 ? 次閱讀

看到一個交流群在討論關于【關于STM32中斷優先級的話題】,其中就有小伙伴提到:為什么有些STM32中斷沒有【子優先級】?

比如,有時候你在使用STM32CubeMX配置時,你會發現只有Preemption Priority【搶占優先級】,而沒有Sub Priority【次優先級】:

7d0e0e70-6cc1-11ee-939d-92fbcf53809c.png

然而,有時候你會發現又有Sub Priority【次優先級】:

7d157caa-6cc1-11ee-939d-92fbcf53809c.png

這個問題就牽涉到STM32,準確的來說的是 Cortex-M NVIC嵌套向量中斷控制器的問題。

下面就展開來說說關于ARM單片機NVIC的內容。

關于Cortex-M的NVIC

NVIC:Nested Vectored Interrupt Controller,嵌套向量中斷控制器。

在每個Cortex-M內核中都有這么一個NVIC嵌套向量中斷控制器,當MCU使用的內核不同,其中的NVIC也可能不同。

比如,Cortex-M0和Cortex-M3內核中NVIC功能就不同

其中,中斷優先級分組功能就不同。

Cortex-M0的NVIC沒有優先級分組功能,Cortex-M3、 M4、M7有分組功能。

7d1d290a-6cc1-11ee-939d-92fbcf53809c.jpg ?

所以,你在使用STM32CubeMX配置時,M0/M0+內核的STM32是沒有【次優先級】那個選項的。

Cortex-M0包含STM32F0、L0、G0等處理器

對底層感興趣的朋友可以繼續往下看。

NVIC寄存器

NVIC寄存器,需查看對應的內核(Cortex-M)手冊,在ARM官網能找到( M3也有對應的中文翻譯版,大家可以自己網上搜索)。

內核中的寄存器和我們STM32參考手冊中寄存器一樣,不同的Bit位代表含義不同。

但是,對于NVIC來說,由于包含眾多優先級相關配置,寄存器數量相對較多(NVIC寄存器族)。

7d2acdc6-6cc1-11ee-939d-92fbcf53809c.jpg ? ?

拿M3來說,優先級分組的配置,位于NVIC的AIRCR應用程序中斷及復位控制寄存器中:

7d32380e-6cc1-11ee-939d-92fbcf53809c.jpg ?

中斷入口

額外提下一個小伙伴問的問題:為什么外部中斷8和9都使用同一個中斷?

void EXTI9_5_IRQHandler(void)
{
  if(EXTI_GetITStatus(EXTI_Line8) != RESET)
  {
    /* 代碼 */
    EXTI_ClearITPendingBit(EXTI_Line8);
  }
  if(EXTI_GetITStatus(EXTI_Line9) != RESET)
  {
    /* 代碼 */
    EXTI_ClearITPendingBit(EXTI_Line9);
  }
}
我想,這個問題應該不難。好比一個main程序入口,進入之后需要處理很多事情,只是在里面需要區分事件。

很多外設中斷,都會使用同一個中斷入口,有一個原因:節約中斷入口資源分配

像USART發送和接收中斷,TIM不同通道捕獲中斷等。







審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2272

    文章

    10923

    瀏覽量

    357541
  • Cortex-M
    +關注

    關注

    2

    文章

    229

    瀏覽量

    29841
  • ARM單片機
    +關注

    關注

    0

    文章

    45

    瀏覽量

    9914
  • 中斷優先級
    +關注

    關注

    0

    文章

    22

    瀏覽量

    9406
  • stm32cubemx
    +關注

    關注

    5

    文章

    284

    瀏覽量

    15000

原文標題:STM32中斷沒有子優先級?

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32 MCU通過STM32CubeMx配置NVIC怎么沒有中斷優先級選項

    時,不難發現一個問題,那就是怎么沒有中斷優先級【或稱響應優先級、副優先級等】的配置?!【當然,
    發表于 09-09 09:25 ?2093次閱讀
    <b class='flag-5'>STM32</b> MCU通過<b class='flag-5'>STM32</b>CubeMx配置NVIC怎么<b class='flag-5'>沒有</b><b class='flag-5'>中斷</b><b class='flag-5'>子</b><b class='flag-5'>優先級</b>選項

    STM32中斷優先級相關概念與使用筆記

    優先級無效102號搶先優先級102號優先級無效113號搶先優先級113號
    發表于 03-09 15:04

    STM32中斷優先級和開關總中斷

    STM32中斷優先級和開關總中斷
    發表于 08-22 10:46

    STM32中斷優先級和開關總中斷

    STM32中斷優先級和開關總中斷一,中斷優先級STM32
    發表于 08-16 07:05

    STM32中斷優先級和開關總中斷

    STM32中斷優先級和開關總中斷一,中斷優先級STM32
    發表于 08-23 07:06

    如何去實現stm32中斷優先級分組

    stm32中斷優先級分組一、搶占優先級和響應優先級STM32
    發表于 01-14 06:49

    STM32中斷設置的先占式優先級與從優先級如何理解?

    STM32中斷設置的先占式優先級與從優先級如何理解?
    發表于 03-24 17:55

    Stm32中斷優先級概念及使用

    1.ARM cortex_m3內核支持256個中斷(16個內核+240外部)和可編程256中斷優先級的設置,與其相關的中斷控制和
    發表于 02-28 14:38 ?146次下載

    STM32中斷優先級和開關總中斷教程

    STM32中斷優先級和開關總中斷 教程
    發表于 11-23 18:03 ?0次下載

    STM32中斷及FreeRTOS中斷優先級配置

    STM32中斷,及FreeRTOS中斷優先級配置
    的頭像 發表于 03-04 11:45 ?8999次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>中斷</b>及FreeRTOS<b class='flag-5'>中斷</b><b class='flag-5'>優先級</b>配置

    STM32中斷優先級的分配以及中斷原則

    設計,導致實際上支持的優先級數量更少。在STM32只使用了IPR寄存器的高四位,第四位讀回都為0。用于表達優先級的這四位又被分組為5組0~4,當配置
    發表于 11-19 10:21 ?52次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>中斷</b><b class='flag-5'>優先級</b>的分配以及<b class='flag-5'>中斷</b>原則

    stm32中斷優先級分組

    stm32中斷優先級分組轉載:http://news.eeworld.com.cn/mcu/article_2018053039408.html一、搶占優先級和響應
    發表于 01-14 15:04 ?3次下載
    <b class='flag-5'>stm32</b><b class='flag-5'>中斷</b><b class='flag-5'>優先級</b>分組

    STM32NVIC中斷優先級

    STM32NVIC中斷優先級CM3內核共支持256個中斷,其中包含了16個內核中斷,240個外部中斷
    發表于 01-14 15:15 ?2次下載
    <b class='flag-5'>STM32</b>NVIC<b class='flag-5'>中斷</b><b class='flag-5'>優先級</b>

    STM32筆記之中斷優先級和開關總中斷

    STM32中斷優先級和開關總中斷一,中斷優先級STM32
    發表于 01-14 15:24 ?13次下載
    <b class='flag-5'>STM32</b>筆記之<b class='flag-5'>中斷</b><b class='flag-5'>優先級</b>和開關總<b class='flag-5'>中斷</b>

    STM32中斷沒有優先級

    比如,有時候你在使用STM32CubeMX配置時,你會發現只有Preemption Priority【搶占優先級】,而沒有Sub Priority【次優先級
    的頭像 發表于 10-17 15:50 ?861次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>中斷</b><b class='flag-5'>沒有</b><b class='flag-5'>子</b><b class='flag-5'>優先級</b>?
    博必发百家乐官网的玩法技巧和规则 | 筹码百家乐官网500| 木棉百家乐官网的玩法技巧和规则 | 百家乐的赚钱原理| 新世纪百家乐的玩法技巧和规则 | 逊克县| 百家乐官网永利娱乐场| 百家乐娱乐城备用网址| 大发888充值 在线| 百家乐官网庄比闲多多少| 路冲铺面能做生意吗| 大发888娱乐城真假| 博狗百家乐官网开户| 肯博百家乐游戏| 江西老虎机遥控器| 皇冠百家乐官网客户端皇冠| 关于百家乐概率的书| 大发888怎么| 澳门百家乐官网下路写法| 百家乐自动投注| 新世纪| 捷豹百家乐官网的玩法技巧和规则| 劳力士百家乐的玩法技巧和规则 | 百家乐官网天上人间| 淘金百家乐现金网| 大嘴棋牌手机版| 长春百家乐官网的玩法技巧和规则| 百家乐平注资讯| 百家乐官网技巧之微笑心法 | 网上百家乐娱乐场开户注册| 菏泽市| 娱乐场百家乐大都| 加查县| 澳门百家乐玩法| 固镇县| 百家乐路单| 大发888娱乐场 东南网| 利都百家乐官网国际娱乐| 大发888娱乐充值| 真人百家乐官网蓝盾娱乐平台| 威尼斯人娱乐 老品牌|