日韩在线免费播放-日韩在线免费av-日韩在线免费-日韩在线毛片-国产高清不卡视频-国产高清不卡

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > STM32之中斷系統

STM32之中斷系統 時間:2019-08-06      來源:深圳中心,黃老師

什么是中斷?中斷的流程是什么樣?:

      一種處理系統內發生非尋常的或非預期的急需處理事件機制,叫做中斷。

在MCU執行程序期間,系統內發生任何非尋常的或非預期的急需處理事件,使得CPU暫時中斷當前正在執行的程序而轉去執行相應的時間處理程序。待處理完畢后又返回原來被中斷處繼續執行過程。幾乎所有的計算機系統都具備這種機制。

STM32中斷分類:CPU內核中斷和核外外設中斷,其中內核中斷,在官方手冊上,內核中斷叫異常(exception)和核外外設中斷才叫中斷(interrupt),其實是一回事。

補充:所有的中斷用一個表管理起來,編號 為 0~15 的稱為內核異常(需要說明的是,16個編號的內核中斷,但是STM32,本身的內核中斷是11個,還有5個是保留的沒用的),而 16 以上的則稱為核外中斷(外,相對內核而言,對于不同系列的STM32,大致的編號和數量相同,但是對于高級的,比如互聯型系列等,因為偏上外設要多一些,所以中斷的數量也會多一些),這個表就稱為中斷向量表。 這個中斷向量表,這個中斷向量表,本質上可以理解成一個4個字節類型Int的數組,每一個元素就是放的是對應編號的中斷處理程序的入口地址,數組編號其實相當于中斷編號。這個中斷向量表,放在程序最開頭位置(根據STM32存儲映射,起始地址的512K區域,根據boot0和boot1分別映射到系統程序、SRAM和flash,映射到flash和SRAM的時候,起始地址從0x00000000開始放的就是這個中斷向量表)。 

在ST公司提供的啟動文件中為每一個中斷默認定義了一個中斷處理函數,如果我們自己重新寫中斷處理函數,會屏蔽掉默認的這個函數。

中斷管理機制:

STM32有多個中斷,當這些中斷同時發生時,需要有執行先后等關系,管理這些引入了一個專門的中斷管理機制叫NVIC(內嵌向量中斷控制器),相關硬件在CPU內部。控制著中斷的相關功能(其中包括中斷源、搶占優先級、響應優先級、中斷的使能與失能),具體的配置方法后面會提到。

固件庫中NVIC相關的結構體:

填充這4個成員,進行初始化。

中斷源

取值都在枚舉類型IRQn_Type中,在stm32f10x.h

stm32里面的優先級

在stm32中,一個中斷的優先級由兩部分決定,一個是搶占式優先級,還有一個是響應優先級。兩個優先級組成了一個4位的控制字。 

如圖: 

那么我們就會問,這有四位,那兩個優先級各占多少位。就像圖中所展示的,搶占式優先級(黃色)可以沾滿四位,也可以一位都不占,如果占滿四位,則搶占式優先級共有0-15這些等級,占滿2位,就有0-3這些等級。同理響應優先級也是這樣。分配他們各占多少位的函數為: 

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);后面這個數字代表的是搶占式優先級的位數

搶占式優先級和響應優先級分析

這兩個優先級中,搶占式優先級占主導地位,搶占式優先級高的中斷會優先打斷主程序或者另外一個中斷程序。 

如果兩個中斷的搶占式優先級一樣高,當兩個中斷同時發生時,響應優先級高的先發生,完了再發生另一個。但是要注意,響應優先級高的中斷不會打斷低的中斷,也就是當一個高響應優先級的中斷來時,如果正在執行一個低的中斷,他不會打斷他,而是等待低的執行完在執行。也就是說只有高搶占式優先級可以阻斷。

基于標準固件庫V3.50中斷編程的應用:

1.需要全局配置中斷分組。

比如:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

2.對于某個具體的中斷源,配置其相應的NVIC。填寫結構體,調用

以串口為例

   NVIC_InitTypeDef NVIC_InitStructure;

   NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//ÇÀÕ¼ÓÅÏȼ¶3

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //×ÓÓÅÏȼ¶3

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQͨµÀʹÄÜ

NVIC_Init(&NVIC_InitStructure); //¸ù¾ÝÖ¸¶¨µÄ²ÎÊý³õʼ»¯VIC¼Ä´æÆ&pide;

3.產生中斷的,引發中斷,進入中斷處理函數的時間配置。

通常是XXX__ITConfig   其中XXX代表某個具體的外設

4.中斷處理函數:

   中斷處理函數不能隨便填寫,必須要一個固定的函數名字,具體某個偏上外設對應的中斷處理函數,需要到,啟動文件這個文件里去找。

5.在進入相應中斷處理函數后

首先需要需要判斷XXX_GetITStatus  是不是我們前面對應設置的中斷事件

6.在處理完了相應的中斷函數后調用,有一個類似 _ClearIT 函數清除相應的標志位

上一篇:C語言——指針

下一篇:網絡編程

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 抖音下载安装| 红色诗集诗配画竖版| 张鸿昌| 崔在焕| 翔田千里高清在线播放| 捷克女人性ⅹxxxx视频| 涨潮海岸| 电影《大突围》免费观看国语| 辐射避难所掉脑袋问题答案 | 炊事班班长述职报告| 李泽宇| 杰深斯坦森全部电影| 打美女屁股光屁股视频| 陷入纯情| 女人 电影| 嗯啊主人| 六年级下册语文书50页内容| 地理填充图册| 美女热吻| 喝醉的图片| 春闺梦里人电影在线观看| 恶魔在线观看免费观看全集高清| 诺曼瑞杜斯| 红灯区无删减| 狂野殴美激情性bbbbbb| 女神异闻录3动漫| 媚狐传| 演觉法师| 恋爱症候群| 周传雄黄昏歌词| 邬玉君| 你的名字豆瓣| 河南省物业管理条例| 洗衣机水满了还在进水维修视频 | 电影你不要走| 仙剑奇侠传三图片| 社会主义道德原则| 寡妇一级毛片视频| 寡妇2| 蛇花| 娟子个人资料简介|