版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、STM32的嵌套中斷系統(tǒng)本文檔由“風(fēng)中的葉”整理;QQ:654705188一、綜述:1、STM32(Cortex-M3)中的優(yōu)先級(jí)概念STM32(Cortex-M3)中有兩個(gè)優(yōu)先級(jí)的概念:搶占式優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí),也把響應(yīng)優(yōu)先級(jí)稱作“亞優(yōu)先級(jí)”或“副優(yōu)先級(jí)”,每個(gè)中斷源都需要被指定這兩種優(yōu)先級(jí)。何為占先式優(yōu)先級(jí)(pre-emptionpriority)高占先式優(yōu)先級(jí)的中斷事件會(huì)打斷當(dāng)前的主程序/中斷程序運(yùn)行搶斷式優(yōu)先響應(yīng),俗稱中斷嵌套。何為副優(yōu)先級(jí)(subpriority)在占先式優(yōu)先級(jí)相同的情況下,高副優(yōu)先級(jí)的中斷優(yōu)先被響應(yīng);在占先式優(yōu)先級(jí)相同的情況下,如果有低副優(yōu)先級(jí)中斷正在執(zhí)行,高副優(yōu)先
2、級(jí)的中斷要等待已被響應(yīng)的低副優(yōu)先級(jí)中斷執(zhí)行結(jié)束后才能得到響應(yīng)非搶斷式響應(yīng)(不能嵌套)。判斷中斷是否會(huì)被響應(yīng)的依據(jù)首先是占先式優(yōu)先級(jí),其次是副優(yōu)先級(jí);占先式優(yōu)先級(jí)決定是否會(huì)有中斷嵌套;Reset、NMI、HardFault優(yōu)先級(jí)為負(fù)(高于普通中斷優(yōu)先級(jí))且不可調(diào)整。優(yōu)先級(jí)沖突的處理具有高搶占式優(yōu)先級(jí)的中斷可以在具有低搶占式優(yōu)先級(jí)的中斷處理過(guò)程中被響應(yīng),即中斷的嵌套,或者說(shuō)高搶占式優(yōu)先級(jí)的中斷可以嵌套低搶占式優(yōu)先級(jí)的中斷。當(dāng)兩個(gè)中斷源的搶占式優(yōu)先級(jí)相同時(shí),這兩個(gè)中斷將沒(méi)有嵌套關(guān)系,當(dāng)一個(gè)中斷到來(lái)后,如果正在處理另一個(gè)中斷,這個(gè)后到來(lái)的中斷就要等到前一個(gè)中斷處理完之后才能被處理。如果這兩個(gè)中斷同時(shí)到
3、達(dá),則中斷控制器根據(jù)他們的響應(yīng)優(yōu)先級(jí)高低來(lái)決定先處理哪一個(gè);如果他們的搶占式優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)都相等,則根據(jù)他們?cè)谥袛啾碇械呐盼豁樞驔Q定先處理哪一個(gè)。Cortex-M3中對(duì)中斷優(yōu)先級(jí)的定義既然每個(gè)中斷源都需要被指定這兩種優(yōu)先級(jí),就需要有相應(yīng)的寄存器位記錄每個(gè)中斷的優(yōu)先級(jí);在Cortex-M3中定義了8個(gè)比特位用于設(shè)置中斷源的優(yōu)先級(jí),這8個(gè)比特位可以有8種分配方式,如下:所有8位用于指定響應(yīng)優(yōu)先級(jí)最高1位用于指定搶占式優(yōu)先級(jí),最低7位用于指定響應(yīng)優(yōu)先級(jí)最高2位用于指定搶占式優(yōu)先級(jí),最低6位用于指定響應(yīng)優(yōu)先級(jí)最高3位用于指定搶占式優(yōu)先級(jí),最低5位用于指定響應(yīng)優(yōu)先級(jí)最高4位用于指定搶占式優(yōu)先級(jí),最低
4、4位用于指定響應(yīng)優(yōu)先級(jí)最高5位用于指定搶占式優(yōu)先級(jí),最低3位用于指定響應(yīng)優(yōu)先級(jí)最高6位用于指定搶占式優(yōu)先級(jí),最低2位用于指定響應(yīng)優(yōu)先級(jí)最高7位用于指定搶占式優(yōu)先級(jí),最低1位用于指定響應(yīng)優(yōu)先級(jí)這就是優(yōu)先級(jí)分組的概念。stm32中對(duì)中斷優(yōu)先級(jí)的定義Cortex-M3允許具有較少中斷源時(shí)使用較少的寄存器位指定中斷源的優(yōu)先級(jí),因此STM32把指定中斷優(yōu)先級(jí)的寄存器位減少到4位,這4個(gè)寄存器位的分組方式如下:第0組:所有4位用于指定響應(yīng)優(yōu)先級(jí)第1組:最高1位用于指定搶占式優(yōu)先級(jí),最低3位用于指定響應(yīng)優(yōu)先級(jí)第2組:最高2位用于指定搶占式優(yōu)先級(jí),最低2位用于指定響應(yīng)優(yōu)先級(jí)第3組:最高3位用于指定搶占式優(yōu)先級(jí)
5、,最低1位用于指定響應(yīng)優(yōu)先級(jí)第4組:所有4位用于指定搶占式優(yōu)先級(jí)如何9個(gè)中柘榔脊個(gè)I;門(mén)的(InterruptPriorityRegisters)來(lái)掲述該中斷的打先式優(yōu)先級(jí)及副優(yōu)先級(jí)在這個(gè)劈存器中5711321114個(gè)逖制位描述優(yōu)先級(jí)(Cortex-M3義了8他但引M淞貝使用4位占先武優(yōu)先級(jí)崎副優(yōu)先級(jí)的分配種組汁方式優(yōu)無(wú)級(jí)組別副優(yōu)先細(xì)4W16級(jí)CW0級(jí)33位用級(jí)j仞2綴22位/斗級(jí)2缺級(jí)11位/2級(jí)引附8繳00矽0緩4f”16級(jí)STM32金國(guó)遽回研討會(huì)w川個(gè)描述優(yōu)先級(jí)位有下列5種組合使川方式“優(yōu)先級(jí)細(xì)別啾定如何解釋這4位。AIRC(ApplicationInterruptandResetReg
6、ister)寄存器中有用于指定優(yōu)先級(jí)的4bits。這4個(gè)bits用于分配preemption優(yōu)先級(jí)和sub優(yōu)先級(jí),在STM32的固件庫(kù)中定義如下:/*PreemptionPriorityGroup*/#defineNVIC_PriorityGroup_0pre-emptionpriority(u32)0 x700)/*0bitsfor4bitsforsubpriority*/#defineNVIC_PriorityGroup_1(u32)0 x600)/*1bitsforpre-emptionpriority3bitsforsubpriority*/#defineNVIC_PriorityGr
7、oup_2(u32)0 x500)/*2bitsforpre-emptionpriority2bitsforsubpriority*/#defineNVIC_PriorityGroup_3(u32)0 x400)/*3bitsforpre-emptionpriority1bitsforsubpriority*/#defineNVIC_PriorityGroup_4(u32)0 x300)/*4bitsforpre-emptionpriority0bitsforsubpriority*/可以通過(guò)調(diào)用STM32的固件庫(kù)中的函數(shù)NVIC_PriorityGroupConfig()選擇使用哪種優(yōu)先級(jí)分
8、組方式,這個(gè)函數(shù)的參數(shù)有下列5種:NVIC_PriorityGroup_0=選擇第0組NVIC_PriorityGroup_1=選擇第1組NVIC_PriorityGroup_2=選擇第2組NVIC_PriorityGroup_3=選擇第3組NVIC_PriorityGroup_4=選擇第4組接下來(lái)就是指定中斷源的優(yōu)先級(jí),下面以一個(gè)簡(jiǎn)單的例子說(shuō)明如何指定中斷源的搶占式優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí):/選擇使用優(yōu)先級(jí)分組第1組NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);/定義NVIC的結(jié)構(gòu)體變量NVIC_InitTypeDefNVIC_InitStructu
9、re;/使能EXTI0中斷NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;/指定搶占式優(yōu)先級(jí)別1NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;/指定響應(yīng)優(yōu)先級(jí)別0NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);/使能EXTI9_5中斷NVIC_InitStructure.NVIC_IRQCh
10、annel=EXTI9_5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;/指定搶占式優(yōu)先級(jí)別0NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;/指定響應(yīng)優(yōu)先級(jí)別1NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);要注意的幾點(diǎn)是:如果指定的搶占式優(yōu)先級(jí)別或響應(yīng)優(yōu)先級(jí)別超出了選定的優(yōu)先級(jí)分組所限定的范圍,將可能得到意想不到的結(jié)果;搶占式優(yōu)先級(jí)別相同的中斷源之間沒(méi)有嵌套關(guān)系;如
11、果某個(gè)中斷源被指定為某個(gè)搶占式優(yōu)先級(jí)別,又沒(méi)有其它中斷源處于同一個(gè)搶占式優(yōu)先級(jí)別,則可以為這個(gè)中斷源指定任意有效的響應(yīng)優(yōu)先級(jí)別。2、開(kāi)關(guān)總中斷在STM32/Cortex-M3中是通過(guò)改變CPU的當(dāng)前優(yōu)先級(jí)來(lái)允許或禁止中斷。PRIMASK位:只允許NMI和hardfault異常,其他中斷/異常都被屏蔽(當(dāng)前CPU優(yōu)先級(jí)=0)。FAULTMASK位:只允許NMI,其他所有中斷/異常都被屏蔽(當(dāng)前CPU優(yōu)先級(jí)=-1)。在STM32固件庫(kù)中(stm32fl0 x_nvic.c和stm32fl0 x_nvic.h)定義了四個(gè)函數(shù)操作PRIMASK位和FAULTMASK位,改變CPU的當(dāng)前優(yōu)先級(jí),從而達(dá)到
12、控制所有中斷的目的。下面兩個(gè)函數(shù)等效于關(guān)閉總中斷:voidNVIC_SETPRIMASK(void);voidNVIC_SETFAULTMASK(void);下面兩個(gè)函數(shù)等效于開(kāi)放總中斷:voidNVIC_RESETPRIMASK(void);voidNVIC_RESETFAULTMASK(void);上面兩組函數(shù)要成對(duì)使用,但不能交叉使用。例如:第一種方法:NVIC_SETPRIMASK();/關(guān)閉總中斷,只允許NMI和hardfault異常NVIC_RESETPRIMASK();/開(kāi)放總中斷第二種方法:NVIC_SETFAULTMASK();/關(guān)閉總中斷,只允許NMINVIC_RESETF
13、AULTMASK();/開(kāi)放總中斷常常使用:NVIC_SETPRIMASK();/DisableInterruptsNVIC_RESETPRIMASK();/EnableInterrupts可以用:#defineCLI()_set_PRIMASK(1)/關(guān)閉總中斷#defineSEI()_set_PRIMASK(0)/打開(kāi)總中斷來(lái)實(shí)現(xiàn)開(kāi)關(guān)總中斷的功能。二、寄存器介紹:1、在core_cm3.h中定義了:typedefstruct_IOuint32_tISER8;/*Offset:0 x000(R/W)InterruptSetEnableRegister*/SETENA:中斷0-239的使能寄存
14、器;地址為:0 xE000-E1000 xE000-E11C;復(fù)位值:0uint32_tRESERVED024;/未定義的寄存器_IOuint32_tICER8;/*Offset:0 x080(R/W)InterruptClearEnableRegister*/CLRENA:中斷0-239的除能寄存器;地址為:0 xE000-E1800 xE000-E19C;復(fù)位值:0uint32_tRSERVED124;/未定義的寄存器_IOuint32_tISPR8;/*Offset:0 x100(R/W)InterruptSetPendingRegister*/SETPEND:中斷0-239的懸起寄存器
15、;地址為:0 xE000-E2000 xE000-E21C;復(fù)位值:0uint32_tRESERVED224;/未定義的寄存器_IOuint32_tICPR8;/*Offset:0 x180(R/W)InterruptClearPendingRegister*/CLRPEND:中斷0-239的解懸寄存器;地址為:0 xE000-E2800 xE000-E29C;復(fù)位值:0uint32_tRESERVED324;/未定義的寄存器_IOuint32_tIABR8;/*Offset:0 x200(R/W)InterruptActivebitRegister*/ACTIVE:中斷0-239的活動(dòng)狀態(tài)寄
16、存器;地址為:0 xE000-E3000 xE000-E31C復(fù)位值:0uint32_tRESERVED456;/未定義的寄存器IOuint8_tIP240;/*Offset:0 x300(R/W)InterruptPriorityRegister(8Bitwide)*/中斷優(yōu)先級(jí)寄存器陣列(8位):中斷0-239的中斷優(yōu)先級(jí);/地址為:0 xE000-E4000 xE000-E4EF;復(fù)位值:0uint32_tRESERVED5644;/未定義的寄存器_IOuint32_tSTIR;/*Offset:0 xE00(R/W)SoftwareTriggerInterruptRegister*/S
17、TIR:軟件觸發(fā)中斷寄存器(如寫(xiě)入8則觸發(fā)中斷8的中斷);/地址為:0 xE000-EF00;復(fù)位值:-NVIC_Type;#defineSCS_BASE(0 xE000E000)/*SystemControlSpaceBaseAddress*/#defineNVIC_BASE(SCS_BASE+0 x0100)/*NVICBaseAddress*/#defineNVIC(NVIC_Type*)NVIC_BASE)/*NVICconfigurationstruct*/typedefstruct_Iuint32_tCPUID;/*Offset:0 x000(R/)CPUIDBaseRegiste
18、r*/CPUID:-;地址為:0 xE000-ED00;復(fù)位值:0 x410fc230_IOuint32_tICSR;/*Offset:0 x004(R/W)InterruptControlandStateRegister*/ICSR:中斷控制及狀態(tài)寄存器;地址為:0 xE000-ED04;復(fù)位值:0Dll中箭授制尺秋態(tài)詩(shī)任器1匸栄OxEDOOEDO4也啟類(lèi)型復(fù)悝隹NMIPENDrSETR/W0町1kUi尿忡臨*IM打NW1I附it先貓址禹II.從不眥駅.&硏忖北荷爪櫛v.lJyiANL1I腫務(wù)例畀”28PENDSVSETR/W0碼1級(jí)H此HntiSV.ilmE;V)返H1PsdSV的獄怎27
19、PEND&VCLHW0Y:iLl?rFPendSVAiA2&PEND5T5ETR/W0i1畑起57kk.謨収它創(chuàng)趙網(wǎng)Pend5V的狀奢25PFNDS-TCLRW0%;114沾除Sy5Tick叔如狀卷23ISRPREEMPTR0j1m.則如亍總?cè)绲闹挟T將抽fnm入活型狀念(KJ1中圧閔丨制的囲試11的22ISRPEWDIWGR0呦贓*T挪冊(cè)中斷極惡粗不仇默NMI21:12匚TPtNDINGR0.秋包的牴H的編譏如累的1-食中撕汕町則它怖你紀(jì)這W謝中期中就丸級(jí)竝商的耶個(gè)-11RETTDBA5E0呷從舜謝腿創(chuàng)肩耕狗罰顯級(jí)由3雄鮭訶|它環(huán)席戢副W+籬住內(nèi)仁曲是在蜒鶴樞旌下化:個(gè)中,fi1mI皺的怵命處
20、i活動(dòng)狀缶感者右顯常泓科活動(dòng)時(shí)典仃廣并常呼齊附卅t此時(shí)譏祁返I叫甘爭(zhēng)豹產(chǎn)仇叭此乃礎(chǔ)腿和如蝴此位溝口9:OVECMCTIVER,0節(jié)冊(cè)熱胡他15只綣;誼杭啓掘舊1前込VI啲鬪圧K命中斷的已槌佻外常浮人W打NMI樸蜉hull.帕黑事牛葉朮兒卞牛眼般闕程誼他秤聊權(quán)M惑si的伸水料址址w-節(jié)異常諭諭燈&養(yǎng)它帝抽伍e木忖IP的們聯(lián)A1&A1紂測(cè)-怦1Mrtfj城吁f可以川Ilk編1;栄抿什外叩砂樸XifttiMt催甞冇心乩IOuint32_tVTOR;/*Offset:0 x008(R/W)VectorTableOffsetRegister*/VTOR:向量表偏移寄存器;地址為:0 xE000-ED08
21、;復(fù)位值:IOuint32_tAIRCR;/*Offset:OxOOC(R/W)ApplicationInterruptandResetControlRegister*/表0.13應(yīng)用鋰癢中斷員燈廨制苔帝霧酒IR匚咼OxEOOO_EEOC描述3磚VFCTKERW時(shí)M虺:仃何對(duì)破雷打徘的T海竹.揶必鎖同時(shí)把DK05FA、入陽(yáng)久X刪鍛乳翊略-苻讀取此T,了.imi(jkfaos15ENDIANESSR-捋小和證乩1-AiBES),0小端*bltffi站仇也忡峠綁毎的.不能史訊1Q18PRGf?OUPR/W0優(yōu)先級(jí)分組iSrwCSEfRrQw-輔我鼎片揑溜遐訓(xùn)產(chǎn)q次擔(dān)仇IVECTCLFtAjCfIV
22、fwKtrii仃共當(dāng)?shù)脑b訓(xùn)ut態(tài)苗a.逋制wU4K*厠或舌亞訊從耦疑1卩恢塑m用0vectresetw*Vfrcm3處理隣內(nèi)枝俐就邏忙除外人皿把吐技柿那述響芯樸上占.內(nèi)榜廿漿的山螢IOuint32_tSCR;/*Offset:0 x010(R/W)SystemControlRegister*/IOuint32_tCCR;/*Offset:0 x014(R/W)ConfigurationControlRegister*/_IOuint8_tSHP12;/*Offset:0 x018(R/W)SystemHandlersPriorityRegisters(47,8-11,12-15)*/IOuin
23、t32_tSHCSR;/*Offset:0 x024(R/W)SystemHandlerControlandStateRegister*/HardFaultStatusRegister*/DebugFaultStatusRegister*/IOuint32_tMMFAR;/*Offset:0 x034(R/W)MemManageFaultAddressRegister*/_IOuint32_tCFSR;/*Offset:0 x028(R/W)ConfigurableFaultStatusRegister*/表Di站fdultDxEDO0_ED28MMAftVALlD-0訂IM我1,MMAftf
24、|-阿IKERFWrQMUNSTiXRRIWQz-1DACOrtOLR/Wl0ViIN門(mén)冋山愼IftCEUJDL0IOuint32_tHFSR;/*Offset:0 x02C(R/W)IOuint32_tDFSR;/*Offset:0 x030(R/W)IOuint32_tBFAR;/*Offset:0 x038(R/W)BusFaultAddressRegister*/_IOuint32_tAFSR;/*Offset:0 x03C(R/W)AuxiliaryFaultStatusRegister*/&25輔肋仙JIt維址齢韻料FAR】Q応BQ.上D施描述1Iuint32_tPFR2;/*Of
25、fset:0 x040(R/)ProcessorFeatureRegister*/Iuint32_tDFR;/*Offset:0 x048(R/)DebugFeatureRegister*/Iuint32_tADR;/*Offset:0 x04C(R/)AuxiliaryFeatureRegister*/Iuint32_tMMFR4;/*Offset:0 x050(R/)MemoryModelFeatureRegister*/Iuint32_tISAR5;/*Offset:0 x060(R/)InstructionSetAttributesRegister*/uint32_tRESERVED0
26、5;IOuint32_tCPACR;/*Offset:0 x088(R/W)CoprocessorAccessControlRegister*/SCB_Type;#defineSCS_BASE(0 xE000E000)/*SystemControlSpaceBaseAddress*/#defineSCB_BASE(SCS_BASE+0 x0D00)/*SystemControlBlockBaseAddress*/#defineSCB(SCB_Type*)SCB_BASE)/*SCBconfigurationstruct*/三、初始化設(shè)置STM32中的NVIC設(shè)置的流程如下:選擇NVIC的中斷分
27、組:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_l);選擇中斷分組1注意:優(yōu)先級(jí)分組只能設(shè)置一次。定義NVIC的結(jié)構(gòu)體變量:NVIC_InitTypeDefNVIC_InitStructure;選擇要進(jìn)行NVIC設(shè)置的模塊:NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;選擇串口1中斷進(jìn)行搶占式中斷優(yōu)先級(jí)的設(shè)置:NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;/搶占式中斷優(yōu)先級(jí)設(shè)置為0進(jìn)行響應(yīng)式中斷優(yōu)先級(jí)的設(shè)置:NVIC_InitStructu
28、re.NVIC_IRQChannelSubPriority=3;/響應(yīng)式中斷優(yōu)先級(jí)設(shè)置為3使能中斷:NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;使能中斷根據(jù)上述設(shè)置進(jìn)行初始化:NVIC_Init(&NVIC_InitStructure);注:NVIC_InitTypeDef的定義在misc.h中;NVIC的相關(guān)函數(shù)在misc.c中。RCC_IRQn=5,/*!NVIC_IRQChannel的取值列表:typedefenumIRQn/*Cortex-M3ProcessorExceptionsNumbers*x*x*x*x*x*x*x*x*x*x*x*
29、x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*/=-14,/*!2NonMaskable*/NonMaskableInt_IRQnInterruptMemoryManagement_IRQnManagementInterruptBusFault_IRQnFaultInterruptUsageFault_IRQnFaultInterruptSVCall_IRQnCallInterruptDebugMonitor_IRQnMonitorInterruptPendSV_IRQnPendS
30、VInterruptSysTick_IRQnSystemTickInterrupt=-12,/*!4Cortex-M3Memory*/=-11,/*!5Cortex-M3Bus*/=-10,/*!6Cortex-M3Usage*/=-5,/*!11Cortex-M3SV*/=-4,/*!12Cortex-M3Debug*/=-2,/*!14Cortex-M3*/=-1,/*!15Cortex-M3*/*STM32specificInterruptNumbers*/WWDG_IRQn=0,/*!WindowWatchDogInterrupt*/PVD_IRQn=1,/*!PVDthroughEX
31、TILinedetectionInterrupt*/TAMPER_IRQn=2,/*!TamperInterrupt*/RTC_IRQn=3,/*!RTCglobalInterrupt*/FLASH_IRQn=4,/*!FLASHglobalInterrupt*/RCCglobal=6,/*!=17,/*!DMA1*/Interrupt*/EXTI0_IRQnEXTILine0Interrupt*/EXTI1_IRQnEXTILine1Interrupt*/EXTI2_IRQnEXTILine2Interrupt*/EXTI3_IRQnEXTILine3Interrupt*/EXTI4_IRQ
32、nEXTILine4Interrupt*/DMA1_Channel1_IRQnChannel1globalInterruptDMA1_Channel2_IRQnChannel2globalInterruptDMA1_Channel3_IRQnChannel3globalInterruptDMA1_Channel4_IRQnChannel4globalInterruptDMA1_Channel5_IRQnChannel5globalInterruptDMA1_Channel6_IRQnChannel6globalInterruptDMA1_Channel7_IRQnChannel7globalI
33、nterrupt#ifdefSTM32F10X_CLTOC o 1-5 h z=7,/*!=8,/*!=9,/*!=10,/*!=11,/*!DMA1*/=12,/*!DMA1*/=13,/*!DMA1*/=14,/*!DMA1*/=15,/*!DMA1*/=16,/*!DMA1*/*!ADC1*/*!USB*/*!USB*/*!CAN1/*!CAN1/*!*/*!TIM1/*!TIM1/*!TIM1*/*!TIM1*/*!/*!/*!/*!I2C1ADC1_2_IRQn=18,andADC2globalInterruptCAN1_TX_IRQn=19,DeviceHighPriorityor
34、CAN1TXInterruptsCAN1_RX0_IRQn=20,DeviceLowPriorityorCAN1RX0InterruptsCAN1_RX1_IRQn=21,RX1Interrupt*/CAN1_SCE_IRQn=22,SCEInterrupt*/EXTI9_5_IRQn=23,ExternalLine9:5InterruptsTIM1_BRK_IRQn=24,BreakInterrupt*/TIM1_UP_IRQn=25,UpdateInterrupt*/TIM1_TRG_COM_IRQn=26,TriggerandCommutationInterruptTIM1_CC_IRQ
35、n=27,CaptureCompareInterruptTIM2_IRQn=28,TIM2globalInterrupt*/TIM3_IRQn=29,TIM3globalInterrupt*/TIM4_IRQn=30,TIM4globalInterrupt*/I2C1_EV_IRQn=31,50,/*!=32,/*!I2C1=33,/*!I2C2=34,/*!I2C2=35,/*!=36,/*!=37,/*!*=38,/*!*=39,/*!*=40,/*!*/=41,/*!RTC*/*!USBOTGFSEventInterrupt*/I2C1_ER_IRQnErrorInterrupt*/I2
36、C2_EV_IRQnEventInterrupt*/I2C2_ER_IRQnErrorInterrupt*/SPI1_IRQnSPI1globalInterrupt*/SPI2_IRQnSPI2globalInterrupt*/USART1_IRQnUSART1globalInterrupt/USART2_IRQnUSART2globalInterrupt/USART3_IRQnUSART3globalInterrupt/EXTI15_10_IRQnExternalLine15:10InterruptsRTCAlarm_IRQn=42,WakeUpfromsuspendthroughEXTIL
37、ineInterrupt*/TIM5_IRQn=TIM5globalAlarmthroughEXTILineInterruptOTG_FS_WKUP_IRQnInterrupt*/SPI3_IRQn=51,/*!SPI3globalInterrupt*/UART4_IRQn=52,/*!UART4globalInterrupt*/UART5_IRQn=53,/*!UART5globalInterrupt*/TIM6_IRQn=54,/*!TIM6globalInterrupt*/TIM7_IRQn=55,/*!TIM7globalInterrupt*/DMA2_Channel1_IRQn=56
38、,/*!DMA2Channel1globalInterruptDMA2_Channel2_IRQn=57,*/*!DMA2Channel2globalInterruptDMA2_Channel3_IRQn=58,*/*!DMA2Channel3globalInterruptDMA2_Channel4_IRQn=59,*/*!DMA2Channel4globalInterruptDMA2_Channel5_IRQn=60,*/*!DMA2Channel5globalInterruptETH_IRQn*/=61,/*!EthernetglobalInterruptETH_WKUP_IRQn=62,
39、*/*!EthernetWakeupthroughEXTIlineInterrupt*/CAN2_TX_IRQn=63,/*!CAN2TXInterrupt*/CAN2_RX0_IRQnRX0Interrupt*/CAN2_RX1_IRQnRX1Interrupt*/CAN2_SCE_IRQnSCEInterrupt*/OTG_FS_IRQnOTGFSglobalInterrupt#endif/*STM32F10X_CL*/IRQn_Type;使用庫(kù)函數(shù)進(jìn)行時(shí)鐘系統(tǒng)初始化配置=64,/*!CAN2=65,/*!CAN2=66,/*!CAN2=67/*!USB*/voidNVIC_config(
40、)配置中斷NVIC_InitTypeDefNVIC_InitStructure;/NVIC_PriorityGroupConfig(NVIC_PriorityGroup_l);選擇中斷分組1NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;選擇串口1中斷NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;/搶占式中斷優(yōu)先級(jí)設(shè)置為0NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;/響應(yīng)式中斷優(yōu)先級(jí)設(shè)置為3NVIC_InitStructure.NVI
41、C_IRQChannelCmd=ENABLE;/使能中斷NVIC_Init(&NVIC_InitStructure);四、相關(guān)庫(kù)函數(shù)解析1、庫(kù)中所涉及到的結(jié)構(gòu)體typedefstructuint8_tNVIC_IRQChannel;/*!SpecifiestheIRQchanneltobeenabledordisabled.ThisparametercanbeavalueofrefIRQn_Type(ForthecompleteSTM32DevicesIRQChannelslist,pleaserefertostm32f10 x.hfile)*/uint8_tNVIC_IRQChannelPr
42、eemptionPriority;/*!Specifiesthepre-emptionpriorityfortheIRQchannelspecifiedinNVIC_IRQChannel.Thisparametercanbeavaluebetween0and15asdescribedinthetablerefNVIC_Priority_Table*/uint8_tNVIC_IRQChannelSubPriority;/*!SpecifiesthesubprioritylevelfortheIRQchannelspecifiedinNVIC_IRQChannel.Thisparametercan
43、beavaluebetween0and15asdescribedinthetablerefNVIC_Priority_Table*/FunctionalStateNVIC_IRQChannelCmd;/*!SpecifieswhethertheIRQchanneldefinedinNVIC_IRQChannelwillbeenabledordisabled.ThisparametercanbeseteithertoENABLEorDISABLE*/NVIC_InitTypeDef;2、庫(kù)函數(shù)解析在misc.h中:voidNVIC_PriorityGroupConfig(uint32_tNVIC
44、_PriorityGroup);/對(duì)優(yōu)先級(jí)分組進(jìn)行配置voidNVIC_Init(NVIC_InitTypeDef*NVIC_InitStruct);/根據(jù)中斷結(jié)構(gòu)體的值初始化中斷voidNVIC_SetVectorTable(uint32_tNVIC_VectTab,uint32_tOffset);/設(shè)置向量表的位置和偏移voidNVIC_SystemLPConfig(uint8_tLowPowerMode,FunctionalStateNewState);/選擇系統(tǒng)進(jìn)入低功耗模式的條件voidSysTick_CLKSourceConfig(uint32_tSysTick_CLKSource);/系統(tǒng)滴答時(shí)鐘源的配
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年湘教版選擇性必修1物理下冊(cè)月考試卷含答案
- 2025年人教新課標(biāo)高一地理上冊(cè)月考試卷
- 2025年冀教新版九年級(jí)語(yǔ)文下冊(cè)月考試卷
- 2025年蘇人新版七年級(jí)歷史上冊(cè)月考試卷含答案
- 2025年外研版八年級(jí)科學(xué)上冊(cè)階段測(cè)試試卷
- 2025年湘教新版九年級(jí)歷史上冊(cè)月考試卷
- 二零二五年度體育產(chǎn)業(yè)投資擔(dān)保合同3篇
- 2025年度智能門(mén)禁系統(tǒng)租賃合同范本升級(jí)版4篇
- 2025年度民間借貸裁判觀點(diǎn)匯編及法律適用指南合同4篇
- 2025版模板工建筑工程施工圖審查合同范本(含技術(shù)要求)4篇
- 五年級(jí)上冊(cè)寒假作業(yè)答案(人教版)
- 2025年山東浪潮集團(tuán)限公司招聘25人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年財(cái)政部會(huì)計(jì)法律法規(guī)答題活動(dòng)題目及答案一
- 2025年江西省港口集團(tuán)招聘筆試參考題庫(kù)含答案解析
- (2024年)中國(guó)傳統(tǒng)文化介紹課件
- 液化氣安全檢查及整改方案
- 《冠心病》課件(完整版)
- 2024年云網(wǎng)安全應(yīng)知應(yīng)會(huì)考試題庫(kù)
- 公園保潔服務(wù)投標(biāo)方案
- 光伏電站項(xiàng)目合作開(kāi)發(fā)合同協(xié)議書(shū)三方版
- 2024年秋季新滬教版九年級(jí)上冊(cè)化學(xué)課件 第2章 空氣與水資源第1節(jié) 空氣的組成
評(píng)論
0/150
提交評(píng)論