STM32外部中斷 EXTI NVIC的理解

2021-09-13 22:41:21 字數 1373 閱讀 4841

~~*建於:2023年3月28日,逐步更新完善,哈*~

幾位前輩的參考文章,講得很好, 重點理解:

之前使用函式庫實現,如履霧中,走了很多彎路。然後,嘗試暫存器操作,多了n倍時間學習 ,路徑反而清晰起來了。

f429 在核心水平上搭載了乙個異常(中斷/事件)響應系統,支援為數眾多的系統異常和外部中斷。

操作步驟 , 主要操作兩部分, nvic和ext. 建議用a4紙,開啟思維導圖,把知識點聯絡起來.

在理解上, 反過來,從大方向上先把nvci理解.

巢狀向量中斷控制器 : 用於為中斷分組,從而分配搶占優先順序和響應優先順序.

scb->aircr = ((uint32_t)0x05fa0000) | (0x05<<8);   

// 一行**解決分組. 即ip暫存器中[7:6]搶占優先順序, [5:4]響應優先順序;

這個是必須先處理的。

這是函式庫, 還沒理解暫存器的操作

// 使能exti9_5中斷

nvic_initstructure.nvic_irqchannel = exti9_5_irqchannel;

nvic_initstructure.nvic_irqchannelpreemptionpriority = 0; // 指定搶占式優先級別0

nvic_initstructure.nvic_irqchannelsubpriority = 1; // 指定響應優先級別1

nvic_initstructure.nvic_irqchannelcmd = enable;

nvic_init(&nvic_initstructure);

這段**,指定了exti9_5_irqchannel(向量表中第23號)這個異常, 具有的搶占級和響應級

下圖為系統異常清單, 在stm32中文參考手冊中,專業名詞為中斷巢狀向量表. 在 stm32f4xx.h 檔案 irqn_type 結構體裡面的異常宣告.

外部中斷/ 事件控制器: 主要是控制外部中斷/事件的產生

需要配置對應到外部中斷控制器 (exti) 的 nvic 中斷通道的使能和遮蔽位,使得 23 個中斷線中的請求可以被正確地響應。***(這個最難理解)***

STM32外部中斷

一 基本概念 arm coetex m3核心共支援256個中斷,其中16個內部中斷,240個外部中斷和可程式設計的256級中斷優先順序的設定。stm32目前支援的中斷共84個 16個內部 68個外部 還有16級可程式設計的中斷優先順序的設定,僅使用中斷優先順序設定8bit中的高4位。stm32可支援...

stm32外部中斷

外部中斷程式配置流程 rcc 時鐘配置 void rcc configuration void 時鐘配置 開啟各路時鐘 rcc apb2periphclockcmd rcc apb2periph usart1 rcc apb2periph gpioa rcc apb2periph afio,enab...

stm32外部中斷

好久沒玩微控制器了,最近閒著沒事想拿出來玩玩,沒想到乙個stm32的外部中斷讓我花費了兩天時間,好的的挫折啊!終於下午除錯成功,下面來說一下我的除錯之路吧!硬體就是兩個按鍵,四個led,led事共陽極接法,按鍵一端接地一端接gpio口,通過按鍵中斷控制led。程式寫好以後發現始終無法進入中斷,開始查...