衡阳派盒市场营销有限公司

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>?
    百家乐官网系统足球博彩通| 大发888bocai官方下载| 皮山县| 南京百家乐在哪| 传奇百家乐的玩法技巧和规则 | 百家乐博彩资讯论坛| 百家乐官网游戏机图片| bet365娱乐场注册| 鑫鼎百家乐的玩法技巧和规则| 百家乐官网赌场高手| 施秉县| 赢钱的棋牌游戏| 百家乐代理每周返佣| 银河百家乐官网的玩法技巧和规则 | 大发888缺少casino| ea百家乐系统| 百家乐庄闲必赢| 奇迹百家乐官网的玩法技巧和规则| 赌百家乐官网的体会| 维也纳国际娱乐城| 大发888在线官方| 威尼斯人娱乐成| 百家乐永利娱乐场开户注册| 百家乐大小桌布| 百家乐游戏高手| 58百家乐官网的玩法技巧和规则 | 澳门百家乐单注下注| 最好的百家乐娱乐场| 百家乐游戏平台架设| 做生意的信风水吗| 百家乐官网又称为什么| 88百家乐官网现金网| 宜良县| 老虎机遥控器| 葡京赌场| 新利88国际| 尊龙国际| 阿勒泰市| 百家乐官网试玩全讯网2| 大发888游戏是真的吗| 全讯网网址导航|