在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

STM32入門學習筆記之中斷架構(上)

jf_78858299 ? 來源:滑小稽筆記 ? 作者:電子技術園地 ? 2023-02-16 09:57 ? 次閱讀

3.1 STM32F103中斷概述

Cortex-M3內核支持256個中斷,其中包含了16個內核中斷和240個外部中斷,并且具有256級的可編程中斷設置。但STM32并沒有使用Cortex-M3內核的全部東西,而是只用了它的一部分。STM32有84個中斷,包括16個內核中斷和68個可屏蔽中斷,具有16級可編程的中斷優先級。而我們常用的就是這68個可屏蔽中斷,但是STM32的68個可屏蔽中斷,在STM32F103ZET6中只有60個。

3.2 STM32F103中斷優先級

3.2.1 優先級結構

STM32F103的中斷分為搶占優先級和響應優先級兩種,這兩種優先級的順序是搶占優先級高于響應優先級,假設存在兩個事件,那就會存在以下幾種可能:

(1)情況1:事件1和事件2的搶占優先級都是1,事件1的響應優先級為1,事件2的響應優先級為2,那么事件1和事件2同時發生的時候,CPU優先處理事件1,然后處理事件2;

(2)情況2:事件1和事件2的響應優先級都是1,事件1的搶占優先級為2,事件2的搶占優先級為1,那么,事件1和事件2同時發生的時候,CPU優先處理事件2,然后處理事件1;

(3)情況3:事件1的響應優先級為1,事件2的響應優先級為2,事件1的搶占優先級為2,事件2的搶占優先級為1,當事件1和事件2同時發生的時候,CPU優先處理事件2,然后處理事件1;

通過上面兩種情況,我們可以發現,當搶占優先級一致,誰的響應優先級的數小,誰的優先級就高,中斷同時發生的時候CPU就先處理誰;如果搶占優先級不一樣,那么無所謂響應優先級,誰的搶占優先級數小,優先級就高,中斷同時發生的時候CPU就先處理誰。

STM32F103的搶占優先級和響應優先級各有4級,即0~3,根據乘法原理,也從側面反映了16級可編程的中斷優先級,并且搶占優先級和響應優先級的數量是可以設置的,通過中斷分組來配置,中斷分組和優先級數量的對應如下表所示。

搶占優先級數量 響應優先級處理
0 0 4
1 1 3
2 2 2
3 3 1
4 4 0

3.2.2 相關寄存器

(1) 中斷應用和復位控制寄存器AIRCR

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
KEY[15:0]
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
END - GROUP[2:0] - REQ ACT RST

Bit 31~Bit 16:激活代碼,寫入0x05FA激活寄存器

Bit 15:指示數據的字節序(這只能在重置后更改)

0:表示小尾數

1:表示大字節序

Bit 10~Bit 8:中斷優先級分組

Bit 2:請求芯片控制邏輯產生復位

Bit 1:清除所有活動狀態信息中的異常

Bit 0:重置Cortex-M3處理器(調試邏輯除外)

(2) 中斷使能寄存器組 :ISER

在STM32中,ISER寄存器一共有3個,ISER[0]的0到31位對應中斷031,ISER[1]的0到31位對應中斷3263,ISER[2]的0到3對應中斷64~67,如果需要使能某個中斷,必須設置對應的ISER位為1,要清除的話可以設置ICER寄存器組對應位為1,或者對ISER寫0,但是對于ICER寄存器組寫0是不起作用的。

(3) 中斷優先級控制寄存器組 :IP

對于STM32,優先級控制寄存器IP一共有68個,對應著68個中斷,每個寄存器的結構都是相同的,如下圖所示。

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PrePriority[1:0] SubPriority[1:0] -

Bit 7~Bit 6:搶占優先級

Bit 5~Bit 4:響應優先級

3.2.3 中斷優先級配置函數

/***************************************************

Name :NVIC_Init

Function :設置NVIC

Parameter :

PrePriority :搶占優先級

SubPriority :響應優先級

Channel :中斷編號

Group :中斷分組 0~4

Return :None

***************************************************/

void NVIC_Init( u8 PrePriority, u8 SubPriority, u8 Channel, u8 Group )

{

u32 temp, temp1 ;

//設置分組

temp1 = ( ~Group )&0x07 ; //取后三位

temp1 <<= 8 ;

temp = SCB->AIRCR ; //讀取先前的設置

temp &= 0x0000F8FF ; //清空先前分組

temp |= 0x05FA0000 ; //寫入鑰匙

temp |= temp1 ;

SCB->AIRCR = temp ; //設置分組

//設置優先級

temp = ( u32 )PrePriority<<( 4-Group ) ;

temp |= SubPriority&( 0x0f>>Group ) ;

temp &= 0x0F ; //取低四位

NVIC->ISER[ Channel/32 ] |= ( 1<

NVIC->IP[ Channel ] |= temp<<4 ; //設置響應優先級和搶斷優先級

}

3.3 外部中斷EXIT結構

3.3.1 EXIT概述

外部中斷/事件控制器由連接線設備中的多達20個邊緣檢測器或其他設備中的19個邊緣檢測器組成,用于生成事件/中斷請求。每條輸入線可以獨立配置以選擇類型(事件或中斷)和相應的觸發事件(上升或下降或兩者)。每條線也可以獨立屏蔽。

對于STM32來說,每一個端口都可以配置為外部中斷,根據中斷信號的類型都可以單獨配置上升沿觸發或者下降沿觸發,中斷服務函數相互獨立。

3.3.2 EXIT相關寄存器

(1) 中斷屏蔽寄存器 :IMR

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
- M19 M18 M17 M16
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
M15 M14 M13 M12 M11 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0

Bit 19~Bit 0:線x上的中斷請求配置位

0:禁止輸入線x上的中斷請求

1:允許輸入線x上的中斷請求

(2) 上升沿觸發選擇寄存器 :RTSR

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
- R19 R18 R17 R16
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
R15 R14 R13 R12 R11 R10 R9 R8 R7 R6 R5 R4 R3 R2 R1 R0

Bit 19~Bit 0:線x上的上升沿觸發事件配置位

0:禁止輸入線x上的上升沿觸發

1:允許輸入線x上的上升沿觸發

(3) 下降沿觸發選擇寄存器 :FTSR

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
- F19 F18 F17 F16
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
F15 F14 F13 F12 F11 F10 F9 F8 F7 F6 F5 F4 F3 F2 F1 F0

Bit 19~Bit 0:線x上的下降沿觸發事件配置位

0:禁止輸入線x上的下降沿觸發

1:允許輸入線x上的下降沿觸發

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

    關注

    2270

    文章

    10915

    瀏覽量

    356754
  • 中斷
    +關注

    關注

    5

    文章

    900

    瀏覽量

    41590
  • Cortex-M
    +關注

    關注

    2

    文章

    229

    瀏覽量

    29788
收藏 人收藏

    評論

    相關推薦

    STM32單片機學習筆記(8):外部中斷

    利用CubMX生成基于32單片機的HAl庫工程,然后編寫程序在proteus仿真驗證。本項目最適合沒有開發板的同學學習,零成本利用仿真軟件率先入門STM32單片機。本項目需要實現的功
    發表于 07-20 15:32 ?1096次閱讀
    <b class='flag-5'>STM32</b>單片機<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>(8):外部<b class='flag-5'>中斷</b>

    STM32學習筆記14:基本問題,來討論一下軟件架構

    ,systic時鐘應用stm32學習教程13:惡搞,兩只看門狗STM32學習筆記14:基本問題,來討論一下軟件
    發表于 01-29 09:36

    STM32學習筆記(初學者快速入門)

    STM32學習筆記(初學者快速入門)資料來自網絡資源
    發表于 06-11 20:23

    STM32學習記錄之中斷是什么

    STM32學習記錄——中斷和事件最近比較懶惰,突然有人讓詳述一下中斷是什么,腦中又閃出那個解釋:中斷就是你在做某件事,突然被打斷了要去做更重
    發表于 08-16 09:17

    stm32學習之中斷事件

    stm32學習之中斷事件 相信很多小伙伴們早已在51系列的板子上接觸中斷,大概的概括便是:正在看電影的你,突然來了快遞,你暫停了電影去簽收了快遞,回來繼續看電影這便是一級
    發表于 08-17 07:13

    CubeMX入門STM32 HAL庫的學習筆記

    STM32CubeMX是ST官方開發的一款很好用的軟件,主要用于STM32系列單片機的硬件驅動層的配置。網上也有一些關于STM32CubeMX的相關教程,對它的相關操作進行說明。從今天起,小柯希望能將自己從CubeMX
    發表于 08-17 06:55

    STM32入門學習筆記 精選資料分享

    STM32入門學習筆記本文為筆者入門學習過程的記錄,只是零散的記錄了一些個人不太懂得,覺得需要經
    發表于 08-24 07:56

    STM32中斷與嵌套快速入門(NVIC)

    STM32中斷與嵌套快速入門(NVIC),喜歡的朋友可以下載來學習
    發表于 01-15 17:45 ?41次下載

    STM32中斷與嵌套NVIC快速入門

    STM32 中斷與嵌套NVIC 快速入門,喜歡的朋友可以下載來學習
    發表于 01-15 17:45 ?20次下載

    STM32各模塊學習筆記

    STM32個模塊學習筆記 目錄 STM32筆記之一 中斷優先級.................
    發表于 11-30 03:32 ?3172次閱讀

    stm32之中斷與外部中斷

    前言:1.有51單片機開發經驗會比較容易理解中斷優先級;2.本篇博文基于STM32F103RCT6芯片和3.5.0標準庫編寫;3.作為自己學習的一些心得,如有不足之處,還請前輩多多指教;一
    發表于 11-22 13:06 ?26次下載
    <b class='flag-5'>stm32</b><b class='flag-5'>之中斷</b>與外部<b class='flag-5'>中斷</b>

    STM32學習筆記--中斷系統

    目錄:一、STM32中斷系統二、NVIC中斷管理三、中斷配置相關函數一、STM32中斷系統
    發表于 12-04 18:36 ?4次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>--<b class='flag-5'>中斷</b>系統

    STM32學習筆記(五)---NVIC

    STM32學習筆記(五)—NVIC文章目錄STM32學習筆記(五)---NVIC一、NVIC簡介
    發表于 12-04 18:51 ?16次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>(五)---NVIC

    STM32入門學習筆記之中斷架構(下)

    Cortex-M3內核支持256個中斷,其中包含了16個內核中斷和240個外部中斷,并且具有256級的可編程中斷設置。但STM32并沒有使用
    的頭像 發表于 02-16 09:57 ?923次閱讀
    <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><b class='flag-5'>架構</b>(下)

    STM32學習筆記一外部中斷

    STM32 的每個 IO 都可以作為外部中斷中斷輸入口。STM32F103 的中斷控制器支持 19 個外部
    的頭像 發表于 10-24 14:12 ?1438次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>一外部<b class='flag-5'>中斷</b>
    主站蜘蛛池模板: 日本丶国产丶欧美色综合| 欧美一级免费在线观看| 又粗又大的机巴好爽欧美| 欧美猛交xxxx免费看| 4388x17亚洲最大成人网| 四虎影院的网址| 四虎免费看黄| 日本人xxxxxxxxx69| 好大好猛好爽好深视频免费| 69女poren60| 放荡的俄罗斯美女bd| 1024手机看片国产| 亚洲一区亚洲二区| 最新黄色在线| 亚洲免费国产| 在线视频人人视频www| 亚洲先锋资源| a亚洲| 欧美不卡视频| 亚洲综合春色另类久久| 四虎影院免费观看| 亚洲精品国产成人| 伊人久久亚洲综合天堂| 婷婷激情综合五月天| 性欧美人与zooz| 亚洲人免费视频| 一级毛片aaa片免费观看| 台湾香港澳门三级在线| 欧美人成在线观看| 欧美一区二区三区精品| 日韩欧美亚洲综合久久影院d3 | 天天色天天操天天射| 国产一级免费视频| 亚洲欧美视频网站| 亚洲高清免费视频| 免费高清在线爱做视频| 免费抓胸吻胸激烈视频网站| 浓厚な接吻と肉体の交在线观看| 国产激情电影综合在线看| 成年人黄色免费网站| 欧美成人性色生活片天天看|