中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

電子業(yè)網(wǎng)站建設(shè)seo競價

電子業(yè)網(wǎng)站建設(shè),seo競價,建設(shè)網(wǎng)站都需要準(zhǔn)備什么,做照片的網(wǎng)站有哪些軟件目錄 一、中斷的基本概念 二、NVIC 1.NVIC的概念 2、NVIC的組成 3、NVIC的應(yīng)用 4.NVIC的結(jié)構(gòu) 三、外部中斷EXTI 1.外部中斷的概念 2.EXTI基本結(jié)構(gòu) 四、EXTI外部中斷的配置流程 1.開啟APB2中的GPIO口/AFIO時鐘 2.GPIO配置成輸入模式 3.AFIO選擇中斷引腳 4.EXTI初始…

目錄

一、中斷的基本概念

二、NVIC

1.NVIC的概念

2、NVIC的組成

3、NVIC的應(yīng)用

4.NVIC的結(jié)構(gòu)

三、外部中斷EXTI

1.外部中斷的概念

2.EXTI基本結(jié)構(gòu)

四、EXTI外部中斷的配置流程

1.開啟APB2中的GPIO口/AFIO時鐘

2.GPIO配置成輸入模式

3.AFIO選擇中斷引腳

4.EXTI初始化

5.NVIC配置

6.中斷服務(wù)函數(shù)


一、中斷的基本概念

? ? ? ? 在STM32中,中斷系統(tǒng)是一種非常強(qiáng)大的功能,他允許CPU在執(zhí)行代碼的時候,暫停當(dāng)前任務(wù),然后轉(zhuǎn)而執(zhí)行特定的中斷服務(wù)函數(shù)(ISR),處理完成后,再返回主函數(shù)中繼續(xù)執(zhí)行原來的代碼。這種機(jī)制使得STM32能夠高效的相應(yīng)外部事件和內(nèi)部狀態(tài)變化,無需不斷的輪詢檢測,從而大大提高了CPU的利用率。

? ? ? ? 中斷是一種異步事件的處理機(jī)制,他打破了當(dāng)前程序的執(zhí)行流程。當(dāng)中斷發(fā)生時,當(dāng)前任務(wù)會被中斷,保存上下文(如寄存器的值,堆棧的指針等),然后跳轉(zhuǎn)到中斷向量表中找到對應(yīng)的中斷服務(wù)函數(shù)(ISR),去處理中斷事件,處理完畢后,CPU會恢復(fù)原來的上下文,繼續(xù)執(zhí)行以前的任務(wù)。

? ? ? ? STM32中內(nèi)置了靈活且功能強(qiáng)大的中斷寄存器(NVIC,Nested Vectored Interrupt Controller),他負(fù)責(zé)管理和分配中斷(IQR)請求的優(yōu)先級,處理程序的執(zhí)行順序,以及中斷處理過程的調(diào)度。每一個中斷源都有一個特定的中斷號(IQRn),并通過中斷向量表和相對應(yīng)的ISR關(guān)聯(lián)起來。

? ? ? ? STM32中包含了68個可屏蔽中斷通道,包含EXTI、TIM、ADC、USART、SPI、I2C、RTC等多個外設(shè) 使用NVIC統(tǒng)一管理中斷,每個中斷通道都擁有16個可編程的優(yōu)先等級,可對優(yōu)先級進(jìn)行分組,進(jìn)一步設(shè)置搶占優(yōu)先級和響應(yīng)優(yōu)先級

下圖是中斷向量表

????????中斷向量表是計算機(jī)系統(tǒng)中一個重要的組成部分,它用于存放中斷向量,即中斷類型號與對應(yīng)的中斷服務(wù)程序入口地址之間的映射關(guān)系。由于硬件原因CPU只能從某些特定的地址處訪問中斷函數(shù),即只能從中斷向量表中的地址去訪問。我們寫的中斷服務(wù)函數(shù),其名稱和入口地址通常會在鏈接時被放置在中斷向量表的相應(yīng)位置。這樣,當(dāng)中斷發(fā)生時,CPU就能根據(jù)中斷向量表找到并跳轉(zhuǎn)到我們編寫的中斷服務(wù)函數(shù)執(zhí)行。

二、NVIC

1.NVIC的概念

????????NVIC(Nested Vectored Interrupt Controller)是STM32微控制器中的中斷控制器,它負(fù)責(zé)管理和處理微控制器的中斷。(即相當(dāng)于CPU的中斷助手,幫助CPU來管理中斷)NVIC提供了靈活、高效、可擴(kuò)展的中斷處理機(jī)制,支持多級優(yōu)先級、多向中斷、嵌套向量中斷等特性。其主要功能包括:

  1. 中斷向量表:存儲所有中斷的服務(wù)程序地址,當(dāng)中斷發(fā)生時,CPU會根據(jù)中斷向量表跳轉(zhuǎn)到對應(yīng)的中斷服務(wù)程序執(zhí)行。
  2. 中斷優(yōu)先級管理:允許為不同中斷分配不同的優(yōu)先級,以控制中斷的響應(yīng)順序。NVIC的中斷優(yōu)先級由優(yōu)先級寄存器的4位(0~15)決定,這4位可以進(jìn)行切分,分為高n位的搶占優(yōu)先級和低4-n位的響應(yīng)優(yōu)先級。搶占優(yōu)先級高的中斷可以打斷低優(yōu)先級的中斷,實現(xiàn)中斷嵌套。響應(yīng)優(yōu)先級高的中斷在相同搶占優(yōu)先級下可以優(yōu)先排隊。
  3. 中斷使能和禁用:可以啟用或禁用特定的中斷,以便根據(jù)系統(tǒng)需求靈活控制中斷的響應(yīng)。
  4. 中斷觸發(fā)方式:支持多種中斷觸發(fā)方式,如上升沿、下降沿等,以滿足不同中斷源的需求。

2、NVIC的組成

NVIC由以下幾個部分組成:

  1. 中斷優(yōu)先級和控制器:負(fù)責(zé)中斷的掛起、解掛和優(yōu)先級管理。
  2. 向量表:存儲每個中斷源對應(yīng)的中斷處理程序的入口地址。
  3. 系統(tǒng)控制寄存器:提供了對NVIC中斷控制器的配置和控制。
  4. 特殊功能寄存器:NVIC中斷控制器對外暴露的寄存器,用于實現(xiàn)對中斷處理的控制,包括中斷使能、中斷標(biāo)志、中斷狀態(tài)等。

3、NVIC的應(yīng)用

NVIC在STM32中的應(yīng)用非常廣泛,主要包括以下幾個方面:

  1. 中斷優(yōu)先級設(shè)置:用戶可以根據(jù)不同的需求對中斷優(yōu)先級進(jìn)行設(shè)置,以實現(xiàn)對中斷的響應(yīng)和處理。這有助于確保系統(tǒng)在有多個中斷發(fā)生時能夠高效地處理優(yōu)先級較高的中斷事件。
  2. 中斷嵌套處理:NVIC支持中斷嵌套處理,即高優(yōu)先級的中斷可以打斷低優(yōu)先級的中斷。這有助于系統(tǒng)在處理緊急中斷事件時能夠迅速響應(yīng)并處理。
  3. 低功耗模式下的中斷管理:當(dāng)CPU處于低功耗模式時,NVIC提供了掛起和解掛中斷的機(jī)制,可以根據(jù)不同需求設(shè)置相應(yīng)的中斷使能和關(guān)閉。這有助于降低系統(tǒng)的功耗并延長電池壽命。
  4. 中斷標(biāo)志復(fù)位:NVIC提供了中斷標(biāo)志復(fù)位功能,可以清除某個中斷事件的標(biāo)志位。這在中斷處理過后需要清除標(biāo)志位的情況下尤為重要,以確保系統(tǒng)能夠正確識別和處理后續(xù)的中斷事件。

4.NVIC的結(jié)構(gòu)

????????每一個中斷都要被NVIC管理起來,所以一旦就中斷產(chǎn)生,都要經(jīng)過NVIC來確認(rèn)優(yōu)先級,才能被NVIC遞交給CPU。

三、外部中斷EXTI

1.外部中斷的概念

????????對于互聯(lián)型產(chǎn)品,外部中斷/事件控制器由20個產(chǎn)生事件/中斷請求的邊沿檢測器組成,對于其它產(chǎn)品,則有19個能產(chǎn)生事件/中斷請求的邊沿檢測器。每個輸入線可以獨(dú)立地配置輸入類型(脈沖
或掛起)和對應(yīng)的觸發(fā)事件(上升沿或下降沿或者雙邊沿都觸發(fā))。每個輸入線都可以獨(dú)立地被屏
蔽。掛起寄存器保持著狀態(tài)線的中斷請求。

????????EXTI可以監(jiān)測指定GPIO口的電平信號,當(dāng)其指定的GPIO口產(chǎn)生電平變化時,EXTI將立即向NVIC發(fā)出中斷申請,經(jīng)過NVIC裁決后即可中斷CPU主程序,使CPU執(zhí)行EXTI對應(yīng)的中斷程序 支持的觸發(fā)方式:上升沿/下降沿/雙邊沿/軟件觸發(fā) 支持的GPIO口:所有GPIO口,但相同的Pin不能同時觸發(fā)中斷 通道數(shù):16個GPIO_Pin,外加PVD輸出、RTC鬧鐘、USB喚醒、以太網(wǎng)喚醒 觸發(fā)響應(yīng)方式:中斷響應(yīng)/事件響應(yīng)

2.EXTI基本結(jié)構(gòu)

? ? ? ? 從下圖中可以看到,在初始化中,首先會通過APIO進(jìn)行引腳選擇,然后由AFIO將選擇的引腳傳遞給EXTI進(jìn)行邊沿檢測和控制。這時EXTI就開始檢測被選擇的引腳了,當(dāng)中斷來臨的時候,EXTI就看看是哪一路中斷發(fā)生了,然后通過對應(yīng)的EXTI信道傳遞給NVIC。NVIC再來對中斷進(jìn)行管理:如果同時有多個中斷來臨,則判斷優(yōu)先級遞交給CPU;如果來了優(yōu)先級更高的中斷,則進(jìn)行中斷嵌套等等。

下面的圖片是AFIO的示意圖。

????????AFIO就是一個選擇器,當(dāng)我們軟件選擇了某個引腳作為EXTI的時候,則AFIO會把這個引腳對應(yīng)的線路連接到EXTIX上,從而實現(xiàn)后面的過程。但是從下面的圖中可以看到,當(dāng)Pin腳號相同的時候,只能有一個Pin腳被選中(即不能有同樣的Pin腳作為EXTI)

四、EXTI外部中斷的配置流程

配置STM32的中斷系統(tǒng)通常需要經(jīng)過以下幾個步驟:

  1. 啟用外設(shè)時鐘:要啟用與中斷相關(guān)的外設(shè)(如GPIO、定時器等),首先需要為這些外設(shè)啟用時鐘。

  2. 配置外設(shè)為中斷模式:根據(jù)中斷源的類型,配置相應(yīng)的外設(shè)為中斷模式。例如,對于外部中斷,需要配置對應(yīng)的GPIO引腳為中斷輸入模式,并設(shè)置觸發(fā)方式(如上升沿觸發(fā)、下降沿觸發(fā)或雙邊沿觸發(fā))。

  3. 配置NVIC:通過NVIC設(shè)置中斷的優(yōu)先級,并啟用對應(yīng)的中斷。STM32的NVIC支持中斷優(yōu)先級的配置,可以通過相關(guān)函數(shù)設(shè)置中斷的搶占優(yōu)先級和子優(yōu)先級。優(yōu)先級較高的中斷可以中斷正在執(zhí)行的低優(yōu)先級中斷處理程序。

  4. 編寫ISR:為每個中斷源編寫相應(yīng)的ISR(中斷服務(wù)程序)。ISR是實際處理中斷事件的函數(shù),需要按照固定的函數(shù)原型編寫。在ISR中,應(yīng)首先檢查中斷發(fā)生標(biāo)志,然后執(zhí)行相應(yīng)的中斷處理邏輯,最后清除中斷標(biāo)志以準(zhǔn)備下一次中斷。

  5. 使能中斷:確保在主函數(shù)中啟用了外部中斷并進(jìn)入主循環(huán)。在主循環(huán)中,可以執(zhí)行其他任務(wù),等待中斷的發(fā)生。

1.開啟APB2中的GPIO口/AFIO時鐘

????????按道理來說是需要開啟NVIC和EXTI的時鐘的,但是這兩個時鐘是由內(nèi)部提供,無需我們手動開啟,默認(rèn)一直都是打開的狀態(tài),而且標(biāo)準(zhǔn)庫中也沒有相關(guān)的庫函數(shù)

2.GPIO配置成輸入模式

? ? ? ? 因為要檢測外部中斷,GPIO配置成輸入模式是必然的

3.AFIO選擇中斷引腳

? ? ? ? 在這個函數(shù)中選擇要對哪一個GPIO的哪一個Pin腳選中

4.EXTI初始化

初始化的結(jié)構(gòu)體

結(jié)構(gòu)體中的內(nèi)容填充

5.NVIC配置

NVIC中斷分組

注意在STM32的系統(tǒng)代碼中,NVIC中斷分組通常只設(shè)置一次,并且一旦設(shè)置后就不再更改。這是因為隨意改變分組會導(dǎo)致中斷管理混亂,程序可能出現(xiàn)意想不到的執(zhí)行結(jié)果。因此,在系統(tǒng)初始化時,會根據(jù)需要選擇一個合適的分組配置,并在整個系統(tǒng)運(yùn)行過程中保持不變。

中斷優(yōu)先級的設(shè)置

????????

用來初始化的結(jié)構(gòu)體

NVIC_IRQChannel(中斷請求信道)的定義

如此一來,EXTI外部中斷的所有初始化配置就已經(jīng)完成了,我們還需要一個中斷服務(wù)函數(shù)

6.中斷服務(wù)函數(shù)

? ? ? ? 中斷服務(wù)函數(shù)與其他的函數(shù)不同,他被定義在啟動文件Start_up_stm32f10x_md.s中,我們找的時候一定不要找到EXTI文件中了,否則是怎么樣都找不到的。

? ? ? ? 在51單片機(jī)中,我們使用interrupt X的形式來定義中斷服務(wù)函數(shù)的,在STM32中,中斷服務(wù)函數(shù)的名字被限制死了,必須是中斷向量表其中的名字。

中斷向量表

????????在中斷處理函數(shù)中,值得注意的一點(diǎn)是,為了節(jié)約資源,EXTI的10-15和5-9號中斷函數(shù)都用的是一個相同的函數(shù)名,這使得我們在中斷服務(wù)函數(shù)中必須要檢測是哪個信道產(chǎn)生的中斷,再來決定下一步的執(zhí)行邏輯。此外,還需要我們手動清除中斷標(biāo)志位。

檢測是哪一個中斷信道產(chǎn)生的中斷(檢測中斷掛起標(biāo)志位)

清除中斷掛起標(biāo)志位

完整的中斷服務(wù)函數(shù)就如下面這樣

http://www.risenshineclean.com/news/11840.html

相關(guān)文章:

  • 做外貿(mào)密封件的網(wǎng)站適合30歲女人的培訓(xùn)班
  • 音樂相冊制作網(wǎng)站掃圖片識別圖片原圖
  • 溫州專業(yè)營銷網(wǎng)站婚戀網(wǎng)站排名前10
  • 谷歌做網(wǎng)站推廣南寧網(wǎng)站制作
  • 網(wǎng)站備案真實性核驗黃岡seo
  • 做學(xué)校網(wǎng)站的濟(jì)南公司廣州網(wǎng)站優(yōu)化方式
  • 網(wǎng)站導(dǎo)航css horizontal menu最全的百度網(wǎng)盤搜索引擎
  • 做網(wǎng)站得基礎(chǔ)西安外包網(wǎng)絡(luò)推廣
  • wordpress去頂部文字seo深度解析
  • 幸福人壽保險公司官方網(wǎng)站百度seo怎么做網(wǎng)站內(nèi)容優(yōu)化
  • b站推廣網(wǎng)站2024年不用下載站長工具seo綜合查詢騰訊
  • 如何上傳安裝網(wǎng)站模板南京seo關(guān)鍵詞優(yōu)化預(yù)訂
  • wordpress清理網(wǎng)站緩存推廣賺錢一個50元
  • 網(wǎng)站建設(shè)入駐淄博seo
  • cdr做網(wǎng)站網(wǎng)站優(yōu)化策略分析
  • 最好玩的網(wǎng)站今天大事件新聞
  • 做網(wǎng)站用什么語音網(wǎng)站seo推廣招聘
  • 標(biāo)簽化網(wǎng)站seo快排優(yōu)化
  • 南通網(wǎng)站建設(shè).線上推廣具體應(yīng)該怎么做
  • 廣州網(wǎng)站設(shè)計流程網(wǎng)絡(luò)銷售平臺排名前十
  • orchard可以做哪些網(wǎng)站網(wǎng)站seo優(yōu)化排名
  • 免費(fèi)咨詢廣東律師事務(wù)所靖江seo要多少錢
  • 網(wǎng)站背景大小網(wǎng)絡(luò)營銷外包推廣
  • 吳忠住房和城鄉(xiāng)建設(shè)局網(wǎng)站重慶網(wǎng)絡(luò)seo公司
  • 保定專業(yè)網(wǎng)站制作百度推廣賬戶優(yōu)化方案
  • 換網(wǎng)站公司自己的網(wǎng)站怎么樣推廣優(yōu)化
  • 兼職 做網(wǎng)站怎么做好網(wǎng)絡(luò)營銷
  • 建設(shè)網(wǎng)站需要什么技術(shù)寧波seo網(wǎng)站排名
  • 有多少人自己做電影網(wǎng)站seo搜索規(guī)則
  • 自己做網(wǎng)站怎么選架構(gòu)專注網(wǎng)絡(luò)營銷推廣公司