版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
項目三中斷系統(tǒng)設(shè)計任務(wù)1按鍵中斷項目三中斷系統(tǒng)設(shè)計任務(wù)1任務(wù)2任務(wù)3按鍵中斷定時器中斷PWM脈寬調(diào)制知識目標:1.知道STM32中斷控制機制;2.知道NVIC中斷優(yōu)先級。技能目標:1.會進行NVIC中斷優(yōu)先級設(shè)置。2.會外部中斷的編程方法;素養(yǎng)目標:1.操作規(guī)范,符合5S管理要求;2.具備自主探究、勤學(xué)好問的態(tài)度。學(xué)習(xí)目標設(shè)計要求利用STM32中斷系統(tǒng)控制KEY0鍵,要求:第一次按下KEY0鍵,LED0燈點亮,第二次按下LED0鍵燈熄滅,依次進行,編寫控制程序并進行系統(tǒng)調(diào)試。硬件設(shè)計硬件連接:
知識導(dǎo)航外設(shè)在作好進行一次數(shù)據(jù)輸入輸出準備后,產(chǎn)生一個信號給微處理器請求傳輸數(shù)據(jù),這個信號叫中斷請求。引起中斷的原因,或者中斷請求信號的來源稱為中斷源。微處理器若可以進行數(shù)據(jù)傳輸,則響應(yīng)中斷請求信號,停止當前正在執(zhí)行的程序,而轉(zhuǎn)向?qū)υ撏庠O(shè)進行新的輸入輸出操作,稱為中斷響應(yīng)。對外設(shè)進行新的輸入輸出操作所執(zhí)行的程序稱為中斷服務(wù)程序。處理完中斷服務(wù)程序后返回原來執(zhí)行的程序繼續(xù)執(zhí)行,稱為中斷返回。知識導(dǎo)航
STM32中斷系統(tǒng)CM3內(nèi)核支持256個中斷,其中包含16個內(nèi)核中斷和240個外部中斷,并且具有256級的可編程中斷設(shè)置。STM32沒有使用CM3內(nèi)核的全部東西,而只用了它的一部分。STM32有84個中斷,包括16個內(nèi)核中斷和68個可屏蔽中斷,具有16級可編程的中斷優(yōu)先級。STM32F103系列只有60個可屏蔽中斷(107系列才有68個)。知識導(dǎo)航《STM32中文參考手冊》知識導(dǎo)航注意:STM32的中斷通道(中斷線)可能會由多個中斷源公用,這就意味著某一個中斷服務(wù)函數(shù)也可能會被多個中斷源所共用。知識導(dǎo)航幾十個中斷,怎么管理?知識導(dǎo)航
NVIC簡介NVIC全稱:嵌套向量中斷控制器。
NVIC對中斷進行統(tǒng)一的協(xié)調(diào)和控制,其最主要的工作就是控制中斷通道開放與否,以及確定中斷的優(yōu)先級。優(yōu)先級的數(shù)值越小,則優(yōu)先級越高。知識導(dǎo)航STM32的中斷優(yōu)先級STM32內(nèi)核有兩個中斷優(yōu)先級,分別是搶占優(yōu)先級(也稱為主優(yōu)先級)和響應(yīng)優(yōu)先級(也稱為從優(yōu)先級),每個中斷源都需要被指定這兩種中斷優(yōu)先級。具有高搶占優(yōu)先級的中斷,可以在具有低搶占優(yōu)先級的中斷處理過程中被響應(yīng),即中斷嵌套。知識導(dǎo)航中斷管理方法對STM32中斷進行分組,組0~4。對每個中斷設(shè)置一個搶占優(yōu)先級和一個響應(yīng)優(yōu)先級值。分組配置是在寄存器SCB->AIRCR中配置。組AIRCR[10:8]IP[7:4]分配情況分配結(jié)果01110:40位搶占優(yōu)先級,4位響應(yīng)優(yōu)先級11101:31位搶占優(yōu)先級,3位響應(yīng)優(yōu)先級21012:22位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級31003:13位搶占優(yōu)先級,1位響應(yīng)優(yōu)先級40114:04位搶占優(yōu)先級,0位響應(yīng)優(yōu)先級知識導(dǎo)航搶占優(yōu)先級&響應(yīng)優(yōu)先級區(qū)別高優(yōu)先級的搶占優(yōu)先級是可以打斷正在進行的低搶占優(yōu)先級的中斷。搶占優(yōu)先級相同的中斷,高響應(yīng)優(yōu)先級不可以打斷低響應(yīng)優(yōu)先級的中斷。搶占優(yōu)先級相同的中斷,當兩個中斷同時發(fā)生的情況下,哪個響應(yīng)優(yōu)先級高,哪個先執(zhí)行。如果兩個中斷的搶占優(yōu)先級和響應(yīng)優(yōu)先級都是一樣的話,則看哪個中斷先發(fā)生就先執(zhí)行。知識導(dǎo)航舉例假定設(shè)置中斷優(yōu)先級組為2,然后設(shè)置中斷3(RTC中斷)的搶占優(yōu)先級為2,響應(yīng)優(yōu)先級為1;中斷6(外部中斷0)的搶占優(yōu)先級為3,響應(yīng)優(yōu)先級為0;中斷7(外部中斷1)的搶占優(yōu)先級為2,響應(yīng)優(yōu)先級為0。則這3個中斷的優(yōu)先級順序為:中斷7>中斷3>中斷6。知識導(dǎo)航特別說明
一般情況下,系統(tǒng)代碼執(zhí)行過程中,只設(shè)置一次中斷優(yōu)先級分組。知識導(dǎo)航中斷優(yōu)先級分組函數(shù)(misc.c)函數(shù)原型:voidNVIC_PriorityGroupConfig(u32NVIC_PriorityGroup)函數(shù)功能:設(shè)置優(yōu)先級分組。參數(shù):NVIC_PriorityGroup優(yōu)先級分組位長度。voidNVIC_PriorityGroupConfig(uint32_tNVIC_PriorityGroup){assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup));SCB->AIRCR=AIRCR_VECTKEY_MASK|NVIC_PriorityGroup;}舉例:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);知識導(dǎo)航NVIC_PriorityGroup值知識導(dǎo)航分組設(shè)置好之后,怎么設(shè)置單個中斷的搶占優(yōu)先級和響應(yīng)優(yōu)先級?知識導(dǎo)航中斷設(shè)置相關(guān)寄存器(core_cm3.h)__IOuint8_tIP[240];//中斷優(yōu)先級控制的寄存器組__IOuint32_tISER[8];//中斷使能寄存器組__IOuint32_tICER[8];//中斷失能寄存器組__IOuint32_tISPR[8];//中斷掛起寄存器組__IOuint32_tICPR[8];//中斷解掛寄存器組__IOuint32_tIABR[8];//中斷激活標志位寄存器組知識導(dǎo)航對于每個中斷怎么設(shè)置優(yōu)先級?中斷優(yōu)先級控制的寄存器組:IP[240]。240個8位寄存器,每個中斷使用一個寄存器來確定優(yōu)先級。STM32F10x系列一共60個可屏蔽中斷,使用IP[59]~IP[0]。每個IP寄存器的高4位用來設(shè)置搶占和響應(yīng)優(yōu)先級(根據(jù)分組),低4位沒有用到。voidNVIC_Init(NVIC_InitTypeDef*NVIC_InitStruct)知識導(dǎo)航函數(shù)NVIC_Init
函數(shù)原型:voidNVIC_Init(NVIC_InitTypeDef*NVIC_InitStruct)
函數(shù)功能:根據(jù)NVIC_InitStruct中指定的參數(shù)初始化外設(shè)NVIC寄存器。NVIC_InitStruct:指向結(jié)構(gòu)NVIC_InitTypeDef的指針,包含了外設(shè)GPIO的配置信息。知識導(dǎo)航NVIC_InitTypeDef定義于文件“stm32f10x_nvic.h”typedefstruct{u8NVIC_IRQChannel;u8NVIC_IRQChannelPreemptionPriority;u8NVIC_IRQChannelSubPriority;FunctionalStateNVIC_IRQChannelCmd;}NVIC_InitTypeDef;知識導(dǎo)航NVIC_IRQChannel該參數(shù)用以使能或者失能指定的IRQ通道。NVIC_IRQChannel描述EXTI0_IRQn外部中斷線0中斷EXTI1_IRQn外部中斷線1中斷EXTI2_IRQn外部中斷線2中斷EXTI3_IRQn外部中斷線3中斷EXTI4_IRQn外部中斷線4中斷TIM2_IRQnTIM2全局中斷TIM3_IRQnTIM3全局中斷TIM4_IRQnTIM4全局中斷知識導(dǎo)航NVIC_IRQChannelPreemptionPriority該參數(shù)設(shè)置了成員NVIC_IRQChannel中的搶占優(yōu)先級。NVIC_IRQChannelSubPriority該參數(shù)設(shè)置了成員NVIC_IRQChannel中的響應(yīng)優(yōu)先級。知識導(dǎo)航中斷使能寄存器組:ISER[8]
作用:用來使能中斷。32位寄存器,每個位控制一個中斷的使能。STM32F10x只有60個可屏蔽中斷,所以只使用了其中的ISER[0]和ISER[1]。ISER[0]的bit0~bit31分別對應(yīng)中斷0~31;ISER[1]的bit0~27對應(yīng)中斷32~59。知識導(dǎo)航中斷失能寄存器組:ICER[8]作用:用來失能中斷。32位寄存器,每個位控制一個中斷的失能。STM32F10x只有60個可屏蔽中斷,所以只使用了其中的ICER[0]和ICER[1]。ICER[0]的bit0~bit31分別對應(yīng)中斷0~31;ICER[1]的bit0~27對應(yīng)中斷32~59。知識導(dǎo)航NVIC_IRQChannelCmd該參數(shù)指定了在成員NVIC_IRQChannel中定義的IRQ通道被使能還是失能。這個參數(shù)取值為ENABLE或者
DISABLE。知識導(dǎo)航中斷參數(shù)初始化NVIC_InitTypeDefNVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStructure.NVIC_IRQChannel=EXTI2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x0; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure);知識導(dǎo)航
外部中斷概述STM32每一個GPIO引腳都可以作為外部中斷的中斷輸入口,也就是都能配置成一個外部中斷觸發(fā)源。STM32F103中斷控制器支持19個外部中斷(對于互聯(lián)型產(chǎn)品是20個)事件請求。線0~15:對應(yīng)外部IO口的輸入中斷。線16:連接到PVD(可編程電壓監(jiān)測器)輸出。線17:連接到RTC鬧鐘事件。線18:連接到USB喚醒事件。每個外部中斷線可以獨立的配置觸發(fā)方式(上升沿、下降沿或者雙邊沿觸發(fā))、使能/屏蔽。知識導(dǎo)航STM32根據(jù)GPIO端口的引腳序號不同,把不同GPIO端口、同一個序號的引腳組成一組,每組對應(yīng)一個外部中斷源(即中斷線)EXTIx(x:0-15)。比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0為第一組,依此類推,我們就能將眾多中斷觸發(fā)源分成16組。GPIO與外部中斷的映射關(guān)系如圖所示。知識導(dǎo)航函數(shù)GPIO_EXTILineConfig函數(shù)原型:voidGPIO_EXTILineConfig(u8GPIO_PortSource,u8GPIO_PinSource)函數(shù)功能:連接外部中斷線到指定GPIO端口。參數(shù)1:指定的GPIO端口。參數(shù)2:待設(shè)置的外部中斷線路。例如:GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);知識導(dǎo)航函數(shù)EXTI_Init函數(shù)原型:voidEXTI_Init(EXTI_InitTypeDef*EXTI_InitStruct)函數(shù)功能:根據(jù)EXTI_InitStruct中指定的參數(shù)初始化外部中斷。參數(shù):指向結(jié)構(gòu)EXTI_InitTypeDef的指針,包含了外設(shè)EXTI的配置信息。知識導(dǎo)航EXTI_InitTypeDef結(jié)構(gòu)體typedefstruct{uint32_tEXTI_Line;//指定要配置的中斷線
EXTIMode_TypeDefEXTI_Mode;//模式:事件OR中斷
EXTITrigger_TypeDefEXTI_Trigger;//觸發(fā)方式
FunctionalStateEXTI_LineCmd;//使能或失能}EXTI_InitTypeDef;知識導(dǎo)航EXTI_Line:選擇待使能或者失能的外部線路。知識導(dǎo)航EXTI_Mode:設(shè)置被使能線路的模式。知識導(dǎo)航EXTI_Trigger:設(shè)置被使能線路的觸發(fā)方式。知識導(dǎo)航EXTI_LineCmd用來定義選中線路的狀態(tài)??杀辉O(shè)為ENABLE或者DISABLE。知識導(dǎo)航實例EXTI_InitTypeDefEXTI_InitStructure;EXTI_InitStructure.EXTI_Line=EXTI_Line2; EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);知識導(dǎo)航中斷服務(wù)函數(shù)完成中斷初始化以及配置好中斷優(yōu)先級之后,接著編寫中斷服務(wù)函數(shù)。知識導(dǎo)航是不是16個中斷線就可以分配16個中斷服務(wù)函數(shù)呢?IO外部中斷在中斷向量表中只分配了7個中斷向量,只能使用7個中斷服務(wù)函數(shù)。外部中斷線5~9分配一個中斷向量,共用一個服務(wù)函數(shù);外部中斷線10~15分配一個中斷向量,共用一個中斷服務(wù)函數(shù)。知識導(dǎo)航中斷服務(wù)函數(shù)EXTI0_IRQHandlerEXTI1_IRQHandlerEXTI2_IRQHandlerEXTI3_IRQHandlerEXTI4_IRQHandlerEXTI9_5_IRQHandlerEXTI15_10_IRQHandler知識導(dǎo)航常用的中斷服務(wù)函數(shù)格式voidEXTI2_IRQHandler(void){if(EXTI_GetITStatus(EXTI_Line2)!=RESET)//判斷某個線上的中斷是否發(fā)生
{中斷邏輯……EXTI_ClearITPendingBit(EXTI_Line2);//清除中斷標志位} }知識導(dǎo)航函數(shù)EXTI_GetITStatus函數(shù)原型:ITStatusEXTI_GetITStatus(u32EXTI_Line)函數(shù)功能:用于判斷中斷是否發(fā)生。參數(shù):所用的中斷線。返回值:EXTI_Line的新狀態(tài)(SET或者RESET)。知識導(dǎo)航
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智慧社區(qū)車位共享管理服務(wù)合同范本3篇
- 2024跨境教育服務(wù)合作合同
- 2025年度住宅小區(qū)車位租賃押金退還及違約責(zé)任合同4篇
- 2025年度校園窗簾設(shè)計與施工一體化服務(wù)合同3篇
- 2025年度物流金融承運商合作協(xié)議范本8篇
- 2025年度特種物品儲藏安全管理合同4篇
- 2025年度工業(yè)遺產(chǎn)保護與拆遷補償協(xié)議3篇
- 2025年度智慧農(nóng)業(yè)監(jiān)測系統(tǒng)采購合同4篇
- 2024版門面精裝修產(chǎn)權(quán)轉(zhuǎn)讓協(xié)議
- 2025年員工辭退后債權(quán)債務(wù)處理協(xié)議3篇
- 2024版?zhèn)€人私有房屋購買合同
- 2025年山東光明電力服務(wù)公司招聘筆試參考題庫含答案解析
- 2024爆炸物運輸安全保障協(xié)議版B版
- 《神經(jīng)發(fā)展障礙 兒童社交溝通障礙康復(fù)規(guī)范》
- 2025年中建六局二級子企業(yè)總經(jīng)理崗位公開招聘高頻重點提升(共500題)附帶答案詳解
- 2024年5月江蘇省事業(yè)單位招聘考試【綜合知識與能力素質(zhì)】真題及答案解析(管理類和其他類)
- 注漿工安全技術(shù)措施
- 《食品與食品》課件
- 2024年世界職業(yè)院校技能大賽“食品安全與質(zhì)量檢測組”參考試題庫(含答案)
- 讀書分享會《白夜行》
- 2023上海高考英語詞匯手冊單詞背誦默寫表格(復(fù)習(xí)必背)
評論
0/150
提交評論