娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

對STM32 NIVC的了解

發布者:Blissful444最新更新時間:2024-10-22 來源: cnblogs關鍵字:STM32  NIVC  中斷優先級 手機看文章 掃描二維碼
隨時隨地手機看文章

用STM32做項目已經有段時間了,但是我忽然發現我對NVIC其實一點都不了解,所以今天補習了一下NVIC的知識以及我自己對NVIC中斷優先級設置的了解,希望對大家有所幫助:

 

對于NVIC中斷優先級的設置一直都不是很清楚;

 

具體函數如下:

 

/* Configure one bit for preemption priority */
 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);              // 優先級組設置


 /* Timer2中斷*/
 NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;              // 通道設置
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;    // 搶占優先級設置
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;           // 響應優先級設置
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);

 

上面就是簡單的一個中斷使能及優先級設置過程。

 

其中NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); 是優先級組設置

 

對于STM32只支持4位即5種模式的優先級組設置,而在CM3的權威指南里說了他支持8位即256個分級

這說明STM32刪減了CM3的優先級別;

 

STM32中描述的分別為:

 

NVIC_PriorityGroup_0   (0 位的搶占優先級,4 位響應優先級)

NVIC_PriorityGroup_1   (1 位的搶占優先級,3 位響應優先級)

NVIC_PriorityGroup_2   (2 位的搶占優先級,2 位響應優先級)

NVIC_PriorityGroup_3   (3 位的搶占優先級,1 位響應優先級)

NVIC_PriorityGroup_4   (4 位的搶占優先級,0 位響應優先級)

 

 

這里需要介紹下:

 

0位搶占優先級說明,沒有搶占優先級只有響應優先級,并且也支持此2的4次方16個優先級別

 

在這16個優先級別里沒有搶占試優先級都是,響應優先級,也就是說優先級沒有嵌套能力,中斷來了只能按照

響應優先級的順序排列執行;

 

0位響應優先級說明16個優先級都是搶占優先級,無論當前是哪個中斷只要來了比他優先級高的中斷進來都可以實現中斷嵌套,嵌套層數為16;

 

 

舉例說明:

 

對于系統中的兩個中斷設置如下:

 

/* Configure one bit for preemption priority */
 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);


 /* Timer2中斷*/
 /*
 NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
 */


 /* UART5中斷*/
 NVIC_InitStructure.NVIC_IRQChannel = UART5_IRQn;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);

 

因為想要TIM2的優先級高于UART5的優先級不能設置NVIC_PriorityGroup_0

 

只能設置1,2,3,4組,該例子中設置組1則 他有兩個搶占優先級別,所以在兩個中斷中一個搶占優先級寫0,一個寫1,寫0的優先級高于寫1的 ,然后對于響應優先級有2的3次方8個響應優先級,這樣既可達到要求


關鍵字:STM32  NIVC  中斷優先級 引用地址:對STM32 NIVC的了解

上一篇:STM32 assert_param
下一篇:一例使用STM32外設庫設置串口速度與實際不一樣的解決

推薦閱讀最新更新時間:2025-04-24 12:22

KST-STM32學習之中斷優先級與中斷嵌套
1、NIVC ARM Cortex-M3 內核搭載了一個強大而方便的中斷系統,稱之為 NVIC(嵌套向量中斷控制器)。 Cortex-M3 支持 256 個“中斷通道”(16 個異常+240 個中斷)以及對應的可編程 256 級中斷優先級設置。 STM32 雖然采用 Cortex-M3 內核,但是只使用了其中的 84 個“中斷通道”(16 個異常+68 個中斷)以及 16 級中斷優先級設置。 同時也記錄下自己當時的一個插曲。 這個TIM6_IRQn在《STM32固件庫手冊》中查NVIC_IRQChannel的取值是沒有的,然后咨詢下老師,如下回復 再拐回頭看下教程,著實一不一樣 看來要
[單片機]
KST-STM32學習之<font color='red'>中斷優先級</font>與中斷嵌套
MCS-51系統中斷優先級的軟擴展
鑒于MCS-51系統只提供“二級中斷嵌套”,提出擴展51系統中斷優先級的純軟件方法。其利用51系統內建的中斷允許寄存器IE和中斷優先級寄存器IP,通過屏蔽字機制來實現;以C51的形式,給出這種擴展方法的函數庫實現,為該方法的使用賦予友好、簡潔的用戶接口。 關鍵詞:MCS-51單片機 中斷優先級 軟擴展 C51 引言 眾所周知,MCS-51系統只提供“二級中斷嵌套”,而大多數嵌入式系統希望有多于兩級的優先級別。因為一般來說,系統都有掉電中斷,且應置為最高優先級,這樣所有其它中斷只能共用一個最低優先級,如此,往往不能滿足實際的邏輯需求。為了使系統具有多于兩級的中斷優先級別,可以利用8259A之類的中斷控制芯片實現中斷優先級的硬擴展,但
[電源管理]
MCS-51系統<font color='red'>中斷優先級</font>的軟擴展
03 STM32的串口設置步驟
1、綜述 ??(1)STM32F407ZGT6最多可提供6路串口。 ??(2)對于復用功能的IO口,我們首先要使能GPIO時鐘,然后使能相應的外設時鐘,同時,在初始化IO口的函數里,要把GPIO模式設置為復用。 2、串口設置的一般步驟 ??(1)串口時鐘使能,GPIO時鐘使能。 ???? 1 串口是掛在APB2總線下的外設,使能函數為: RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE) ???? 2 GPIO時鐘的使能,只要找到要用的串口對應的芯片引腳就好,比如串口1對應著芯片引腳PA9,PA10,那么,使能GPIOA的時鐘就行: RCC_AHB1PeriphClo
[單片機]
lvgl touch在stm32移植及動畫應用--Apple的學習筆記
一,前言 最近我突然發現原來我用的是電阻觸摸屏,所以是帶觸摸功能的,當初買回來我主要用LCD顯示功能,所以就忘記了它有touch功能,就移植了下驅動,然后lvgl官網的example移植到了sdl2框架中。 二,touch移植 input_dev中移植下,lvgl的porting_template做的還是比較好的。反正lvgl就是周期掃描判斷是否有touch,有則則獲取x和y坐標。效果就不展示了,源碼中獲取x和y坐標后,會識別x和y在哪個obj對象,然后調用這個obj對象的callback用戶回調函數。主要是了解下它的思路。 三,music界面移植 我到應用就是調用API,暫時我不是很感興趣去研究API,我主要是學習GUI
[單片機]
解決方法:STM32使用cJSON解析數據失敗
一、問題 在 STM32 移植 cJSON 庫后,使用 cJSON_Parse(),解析失敗。 char cmd = { msg : this is successful start up , result :1, action : req_startUp , responseData : trustedDevice , serial_no : 0341 , timestamp :1656489886238} ; cJSON *pRoot = cJSON_Parse(cmd); const char *error_ptr = cJSON_GetErrorPtr(); if (error_ptr != NULL) { pr
[單片機]
STM32一文通(7) 系統定時器
直接看第五節就是定時函數. 下面的內容都是在介紹原理 3.0 版以后的 STM32 固件庫在標準外設庫中移除了 SysTick 的驅動,因此用戶必須調用 CMSIS 定義的函數。 CMSIS 只提供了一個 SysTick 設置的函數,替代了 STM32 原有 SysTick 驅動的全部函數。 SysTick_Config(uint32_t ticks); -SysTick 計時器是 24 位的,所以設置參數的時候不要超過 24 位的范圍。 一. 什么是系統定時器 SysTick SysTick:系統定時器,24位,只能遞減,存在于內核,嵌套在NVIC中,所有的Cortex-M內核的單片機都具有這個定時器。 系統嘀嗒校準
[單片機]
stm32的中斷與事件
事件:是表示檢測有一某件觸發事件發生了。 中斷:有某個事件發生并產生中斷,并跳轉到對應的中斷處理程序中。 事件可以觸發中斷,也可以不觸發 中斷有可能被更優先的中斷屏蔽,事件不會 事件本質上就是一個觸發信號,是用來觸發特定的外設模塊或核心本身(喚醒). 事件只是一個觸發信號(脈沖),而中斷則是一個固定的電平信號
[單片機]
stm32快速入門
stm32簡單描述:stm32基于ARM cortex-m3(m4)架構。官方已經提供完備的片內私有外設及片內外設的函數庫。非常有利于利用C語言開發。 準備工作: 1、仔細閱讀以下資料的相關章節: 1)cortex-m3權威指南 這是本cortex-m3架構的經典書,通俗易懂。開始閱讀可重點關注存儲結構等。 2)零死角玩轉STM32 很好的入門教程,注意里面相關內容: A、LibrariesCMSISCoreCM3startuparm下有些啟動文件,對應不同芯片,注意選擇。 3)cortex-m3匯編啟動代碼分析 4) stm32固件庫詳解 PPP代表任一外設。 頭文年的
[單片機]
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 东丽区| 临沧市| 高雄市| 正宁县| 临江市| 景谷| 修文县| 浦城县| 丰原市| 濮阳市| 应用必备| 来凤县| 柞水县| 诸暨市| 富民县| 杭锦后旗| 南部县| 新民市| 奉节县| 兰西县| 江陵县| 石棉县| 铜梁县| 钟山县| 柳林县| 安福县| 化州市| 荥经县| 东兴市| 弥勒县| 东方市| 攀枝花市| 崇左市| 封丘县| 新宁县| 潮州市| 民权县| 伊川县| 鄱阳县| 丽水市| 安庆市|