STM32學習記錄--Day5

今天了解了:

中斷

中斷有多個類別包括:USART中斷,I2C中斷等;

并通過NVIC來分配中斷的優先級

EXTI

EXTI的內部結構:

EXTI線

🔧 ??一、EXTI系統核心架構??

1. ??中斷源輸入(左上區域)??
  • ??GPIO引腳??:
    支持最多4個GPIO端口(A/B/C/D)的引腳作為中斷源。
    ??注意??:每個GPIO引腳都能觸發中斷。
  • ??信號合并??:
    多個GPIO引腳通過 ??“多路選擇器(MUX)”?? 匯合到一條EXTI線上。
    ??關鍵限制??:??同一時間,每條EXTI線只能連接一個GPIO引腳!??
2. ??中斷線分配(中間黃色鈴鐺圖標)??
  • ??EXTI線數量??:
    共有??20條獨立中斷線??:
    • EXTI0~EXTI15:??16條通用線??(可分配給任意GPIO引腳)
    • EXTI16~EXTI19:??4條專用線??(用于特定事件,如PVD、RTC鬧鐘等)
  • ??資源復用??:
    EXTI0可同時被PA0、PB0、PC0、PD0使用,但只能選擇其中一個。
3. ??中斷觸發邏輯(右上區域)??
  • 每條EXTI線可獨立配置??觸發模式??:
    • 上升沿觸發(Rising Edge
    • 下降沿觸發(Falling Edge
    • 雙邊沿觸發(Both Edges
  • 中斷信號最終傳遞到 ??NVIC(嵌套向量中斷控制器)??,執行用戶中斷服務函數。

?? ??二、GPIO與EXTI的綁定規則??

1. ??引腳號決定EXTI線號??
  • ??引腳0(如PA0/PB0)→ 綁定到EXTI0??
  • ??引腳1(如PA1/PB1)→ 綁定到EXTI1??
  • ...
  • ??引腳15(如PA15/PB15)→ 綁定到EXTI15??
2. ??端口選擇(通過AFIO寄存器配置)??
  • ??示例代碼(STM32標準庫)??:
  • 以中斷優先級分組2為例:
  • 	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  • //#1.初始化PA5和PA6RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitTypeDef GPIO_InitStruct;//PA5GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIOA, &GPIO_InitStruct);//PA6GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIOA, &GPIO_InitStruct);	//#2.為EXTI5和EXTI6分配引腳RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource5);GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource6);//#3.初始化EXTI的線EXTI_InitTypeDef EXTI_InitStruct;EXTI_InitStruct.EXTI_Line = EXTI_Line5;EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising;EXTI_InitStruct.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStruct);EXTI_InitStruct.EXTI_Line = EXTI_Line6;EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising;EXTI_InitStruct.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStruct);//#4.配置NVICNVIC_InitTypeDef NVIC_InitStruct;NVIC_InitStruct.NVIC_IRQChannel = EXTI9_5_IRQn;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0;NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStruct);

?? ??三、重要設計約束???

  1. 專用中斷線??:

    • EXTI16:連接PVD(可編程電壓檢測)
    • EXTI17:連接RTC鬧鐘
    • EXTI18:連接USB喚醒事件
    • EXTI19:連接RTC入侵檢測
      ??注意??:這些線無法分配給GPIO引腳。

💎 ??四、總結與配置流程??

  1. ??硬件連接??:
    確定要用作外部中斷的GPIO引腳(如PA0)。

  2. ??EXTI線映射??:
    根據引腳號選擇EXTI線(如PA0 → EXTI0)。

  3. ??端口綁定??:
    AFIO_EXTICR寄存器中設置EXTI0的信號源為GPIOA(而非GPIOB等)。

  4. ??中斷參數配置??:

    • 選擇觸發模式(上升沿/下降沿/雙邊沿)
    • 使能中斷(EXTI->IMR寄存器)
    • 在NVIC中啟用該EXTI線的中斷請求
  5. ??實現中斷服務函數??:
    編寫EXTI0_IRQHandler()函數并清除中斷標志。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917131.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917131.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917131.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CentOS7下同步時間的幾種方式(NTP 、Chrony和systemd-timesyncd)

文章目錄前言一、NTP (Network Time Protocol) & ntpd1.原理2. 安裝與配置(ntp 包)3.NTPd 優缺點對比二、Chrony1.原理2.安裝與配置 (chrony 包)3. 優點4. 缺點三、systemd-timesyncd1.原理2.安裝與配置 (systemd 自帶)3. 優點4. 缺點四、手動同步工具1.ntpdate(已廢棄&…

Web3:在 VSCode 中基于 Foundry 快速構建 Solidity 智能合約本地開發環境

相關文章推薦鏈接Web3專欄https://blog.csdn.net/qq_42392981/category_13016259.html在 VSCode 中基于 Foundry 快速構建 Solidity 智能合約本地開發環境引言1. 開發環境準備(Windows)1.1 安裝 VSCode1.2 安裝推薦插件1.3 安裝 Foundry1.4 驗證 Forge 和…

Implement recovery based on PITR using dump file and binlog

模擬生產場景中需要基于某個事務點的恢復,使用存量備份與存量binlog 生成測試數據 (rootlocalhost) [(none)]> create database NanJing; Query OK, 1 row affected (0.01 sec) (rootlocalhost) [test]> use NanJing; Database changed (rootlocalhost) [NanJ…

HTML-取消div,a等標簽點擊效果

一、背景當標簽被設置onclick事件之后,在有些手機瀏覽器中,點擊這些標簽,會有點擊變色效果。想要取消點擊變色效果。通過為div和標簽元素添加-webkit-tap-highlight-color樣式屬性,可以有效地解決這一問題二、解決方案已a標簽示例…

VR 三維重建:開啟沉浸式體驗新時代

在科技飛速發展的今天,VR(虛擬現實)技術已經逐漸滲透到我們生活的各個領域,為我們帶來了前所未有的沉浸式體驗。而 VR 三維重建作為 VR 技術的重要應用之一,更是讓人們能夠身臨其境地感受各種場景,無論是旅…

iTwinjs 幾何 - Curve

CurvePrimitive 常用的見下 LineSegment3d直線段兩點直線邊、桿件、骨架LineString3d折線多點連續直線輪廓線、路徑Arc3d圓弧 / 橢圓弧圓心 半徑 起止角圓孔、圓角、弧段BezierCurve3d貝塞爾曲線端點 控制點平滑過渡、動畫軌跡BSplineCurve3dB 樣條 / NURBS控制點 節點矢…

iPhone 恢復出廠設置是否會刪除所有內容?

當你的 iPhone 經常崩潰、出現黑屏死機、卡在加載屏幕上等問題時,你可能會考慮進行恢復出廠設置來修復它。或者在其他情況下,如果你要將使用多年的設備交給新主人,出于安全考慮,也需要進行恢復出廠設置。那么,恢復出廠…

機器學習②【字典特征提取、文本特征處理(TF-IDF)、數據標準化與歸一化、特征降維】

文章目錄先言一、特征工程概述二、特征提取1.字典特征提取(特征離散化)2.文本特征提取2.1英文文本提取2.2中文文本提取(jieba分詞器)3.TfidfVectorizer TF-IDF文本特征詞的重要程度特征提取三、數據歸一化與標準化1.MinMaxScaler …

3、CC3200串口DMA

先說下CC3200存在2個16*8的fifos, 分別用于發送和接收 當fifos被disable時,將會作為一個1字節深度的保持寄存器, 所以無論fifos是開是關,發送和接收都繞不開fifos DMA 由于發送和接收都繞不過fifos,所以DMA也繞不開FIFOS. MAP_UARTFIFOLevelS…

從游戲NPC到手術助手:Agent AI重構多模態交互,具身智能打開AGI新大門

注:此文章內容均節選自充電了么創始人,CEO兼CTO陳敬雷老師的新書《GPT多模態大模型與AI Agent智能體》(跟我一起學人工智能)【陳敬雷編著】【清華大學出版社】 清華《GPT多模態大模型與AI Agent智能體》書籍配套視頻課程【陳敬雷…

Lesson 29 Taxi!

Lesson 29 Taxi! taxi n.出租車 同義詞:cab n.出租車 相關:taxi meter計價器 taxi stand taxi rank 出租車站 call ataxi 叫車,打車 例句:對不起,請問出租車站在哪里? Excuse me, do you know where the taxi rank is please? land v.著陸,登陸n.陸地…

怎樣將allegro的brd文件轉化為AD的PCB文件

由于工作需要將allegro的PCB轉成ad給同事,在使用AD軟件導入Allegro的brd格式文件時出現各種的異常報錯彈窗問題,現分享兩種將Allegro PCB文件導入到AD中的方法。一、第1種方法使用高版本的AD軟件(AD22,同時操作電腦需安裝了Allegr…

[免費]【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts)【論文+源碼+SQL腳本】

大家好,我是python222_小鋒老師,看到一個不錯的【NLP輿情分析】基于python微博輿情分析可視化系統(flaskpandasecharts),分享下哈。 項目視頻演示 【免費】【NLP輿情分析】基于python微博輿情分析可視化系統(flaskpandasecharts爬蟲) Pytho…

什么是CI/CD?

CI/CD是持續集成(Continuous Integration)和持續交付/持續部署(Continuous Delivery/Continuous Deployment)的縮寫:持續集成(Continuous Integration, CI):CI是一種開發實踐&#x…

【Linux】重生之從零開始學習運維之Mysql

一主一從主12主機準備工作mkdir -p /data/mysql/logbin chown -R mysql:mysql /data/mysql主節點mysql配置vim /etc/my.cnf.d/mysql-server.cnf server-id177 log_bin/data/mysql/logbin/mysql-bin default_authentication_pluginmysql_native_password查看效果systemctl resta…

Trust Management System (TMS)

Trust Management System (TMS)信托管理系統學習信托管理系統(TMS)是一種用于高效管理信托業務的綜合平臺,涵蓋客戶信息、資產配置、風險監控等功能。通過學習TMS,可以掌握信托產品設計、業務流程優化及合規…

Spring Boot中使用Bouncy Castle實現SM2國密算法(與前端JS加密交互)

Spring Boot中使用Bouncy Castle實現SM2國密算法(與前端JS加密交互)一、環境準備二、核心實現三、前后端交互流程四、關鍵問題解決方案五、常見問題排查六、最佳實踐建議在現代Web應用中,數據安全傳輸至關重要。SM2作為我國自主設計的非對稱加…

機器學習sklearn:隨機森林的決策樹

bg:對比決策樹來說,搞多幾棵樹就是隨機森林了rlf_1 [] rlf_2 [] for i in range(10):rfc RandomForestClassifier(n_estimators25)rfc_s cross_val_score(rfc, wine.data, wine.target, cv10).mean()rlf_1.append(rfc_s)clf DecisionTreeClassifier…

上海月賽kk

1.十六進制#include<bits/stdc.h> using namespace std;int n;int main(){cin>>n;stack<int>re;if(n<16)cout<<0;while(n){re.push(n%16);n/16;}while(!re.empty()){int xre.top();re.pop();if(x<10)cout<<x;else cout<<char(Ax-10)…

暑期算法訓練.12

目錄 52. 力扣1 兩數之和 52.1 題目解析&#xff1a; 52.2 算法思路&#xff1a; 52.3 代碼演示&#xff1a; ?編輯 52.4 總結反思&#xff1a; 53 面試題&#xff1a;判定是否互為字符重排 53.1 題目解析&#xff1a; 53.2 算法思路&#xff1a; 53.3 代碼演示&…