STM32基礎之中斷

2021-10-24 00:26:51 字數 1418 閱讀 6763

stm32中斷很強大,stm32中斷可以巢狀,任何外設都可以產生中斷,其中中斷和異常是等價的.

中斷,在微控制器中占有非常重要的地位。**預設地從上向下執行,遇到條件或者其他語句,會按照指定的地方跳轉。而在微控制器執行**的過程中,難免會有一些突發的情況需要處理,這樣就會打斷當前的**,待處理完突發情況之後,程式會回到被打斷的地方繼續執行。

nvic:巢狀向量中斷控制器,屬於核心外設,管理著包括核心和片上所有外設的中斷相關的功能。

兩個重要的庫檔案:

core_cm3.hmisc.h,nvic的庫函式定義全在misc.h

在配置中斷的時候我們一般只用iser、icer和ip這三個暫存器,iser用來使能中斷,icer用來失能中斷,ip用來設定中斷優先順序。

優先順序設定:nvic->iprx

通過nvic_prioritygroup函式。

優先順序分組:scb->aircr:prigroup[10:8]

如何使能,需要配置哪個暫存器?

如何配置,需要配置哪個暫存器?

通過nvic_prioritygroup函式。

nvic_prioritygroupconfig(uint32_t nvic_prioritygroup)

96行1-nvic_irqchannel:指定中斷源

2-nvic_irqchannelpreemptionpriority:搶占優先順序

3-nvic_irqchannelsubpriority:子優先順序

4-nvic_irqchannelcmd:使能或者失能

在啟動檔案 startup_stm32f10x_hd.s 中我們預先為每個中斷都寫了乙個中斷服務函式,只是這些中斷函式都是為空,為的只是初始化中斷向量表。實際的中斷服務函式都需要我們重新編寫,為了方便管理我們把中斷服務函式統一寫在 stm32f10x_it.c 這個庫檔案中。關於中斷服務函式的函式名必須跟啟動檔案裡面預先設定的一樣,如果寫錯,系統就在中斷向量表中找不到中斷服務函式的入口,直接跳轉到啟動檔案裡面預先寫好的空函式,並且在裡面無限迴圈,實現不了中斷。

stm32之中斷系統

前言 這一節以及後面的定時器部分都是學習所有的微控制器時的最重要的部分,我也花了很多時間去理解手冊和程式,我爭取盡量全面並且細緻的記錄我的體會。這裡就省略了,相信你學過微控制器就會懂。nvic的中文意思是巢狀向量中斷控制器,控制著中斷的相關功能 其中包括中斷源 搶占優先順序 響應優先順序 中斷的使能...

STM32之中斷和異常

1 stm32的所有gpio都可以用作外部中斷源的輸入端,用來捕捉外部訊號,可以配置為下降沿中斷 上公升沿中斷和上公升下降沿中斷三種模式。2 cortex核心具有很強大的異常響應系統,它把能夠打斷當前 執行流程的時間分為異常 exception 和中斷 interrupt 並把它們用乙個表管理起來,...

stm32 韌體庫之 中斷

stm32 可以支援的 68 個外部中斷通道,已經固定的分配給相應的外部裝置。每個中斷通道都具備自己的中斷優先順序控制位元組 pri n 8 位,但在 stm32 中只使用 4 位,高 4 位有效 共可以有 5 種分組 第 0 組方式 所有 4 位用於響應中斷 bit7 bit6 bit5 bit4...