www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]前言:1.要想學(xué)習(xí)STM32中斷,要先掌握STM32對(duì)優(yōu)先級(jí)的定義;2.有51單片機(jī)開(kāi)發(fā)經(jīng)驗(yàn)會(huì)比較容易理解中斷優(yōu)先級(jí);3.本篇博文基于STM32F103ZET6芯片和3.5.0標(biāo)準(zhǔn)庫(kù)編寫(xiě);4.本篇博文從寄存器入手,最終實(shí)現(xiàn)編程的步驟;如有

前言:
1.要想學(xué)習(xí)STM32中斷,要先掌握STM32對(duì)優(yōu)先級(jí)的定義;
2.有51單片機(jī)開(kāi)發(fā)經(jīng)驗(yàn)會(huì)比較容易理解中斷優(yōu)先級(jí);
3.本篇博文基于STM32F103ZET6芯片和3.5.0標(biāo)準(zhǔn)庫(kù)編寫(xiě);
4.本篇博文從寄存器入手,最終實(shí)現(xiàn)編程的步驟;如有不足之處,還請(qǐng)前輩多多指教;

一 基礎(chǔ)知識(shí)
1. cortex-m3支持256個(gè)中斷,其中包含了16個(gè)內(nèi)核中斷,240個(gè)外部中斷。(本博文只介紹60個(gè)外部可屏蔽中斷)
2. stm32只有84個(gè)中斷,包括16個(gè)內(nèi)核中斷和68個(gè)可屏蔽中斷
3. stm32f103上只有60個(gè)可屏蔽中斷,f107上才有68個(gè)中斷
4.先占優(yōu)先級(jí)也就是搶占優(yōu)先級(jí),概念等同于51單片機(jī)中的中斷。假設(shè)有兩中斷先后觸發(fā),已經(jīng)在執(zhí)行的中斷先占優(yōu)先級(jí)如果沒(méi)有后觸發(fā)的中斷 先占優(yōu)先級(jí)更高,就會(huì)先處理先占優(yōu)先級(jí)高的中斷。也就是說(shuō)又有較高的先占優(yōu)先級(jí)的中斷可以打斷先占優(yōu)先級(jí)較低的中斷。這是實(shí)現(xiàn)中斷嵌套的基礎(chǔ)。
次占優(yōu)先級(jí),也就是響應(yīng)優(yōu)先級(jí),只在同一先占優(yōu)先級(jí)的中斷同時(shí)觸發(fā)時(shí)起作用,先占優(yōu)先級(jí)相同,則優(yōu)先執(zhí)行次占優(yōu)先級(jí)較高的中斷。次占優(yōu)先級(jí)不會(huì)造成中斷嵌套。 如果中斷的兩個(gè)優(yōu)先級(jí)都一致,則優(yōu)先執(zhí)行位于中斷向量表中位置較高的中斷。

NVIC是什么?
嵌套向量中斷控制器;用于為中斷分組,從而分配搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí);
分組的方式有兩種:
(1)Cortex-m3內(nèi)核提供了一種3位寬度的PRIGROUP數(shù)據(jù)區(qū),用于指示一個(gè)8位數(shù)據(jù)序列中的小數(shù)點(diǎn)的位置,從而表示中斷優(yōu)先級(jí)的分組。見(jiàn)下表:

(2)而實(shí)際上STM32并沒(méi)有用到這么多中斷,所以在分組上只分了5個(gè)組,并且表示方法有所不同;見(jiàn)下表:

我們?cè)趹?yīng)用當(dāng)中只會(huì)用到STM32的分組(5組)方式,所以下面著重于5組分組方式;

二 中斷向量表 (STM32F10x系列)




(圖片來(lái)自STM32使用手冊(cè),只需看,不需要熟記,知道大概這么多中斷就好)

三 配置中斷相關(guān)寄存器

/*cortex-m3內(nèi)核分組方式(8組)結(jié)構(gòu)體表達(dá)方式:*/typedefstruct{__IOuint32_tISER[8];中斷使能設(shè)置寄存器/*!<偏移量:0x000InterruptSetEnableRegister*/uint32_tRESERVED0[24];__IOuint32_tICER[8];中斷清除使能寄存器/*!<偏移量:0x080InterruptClearEnableRegister*/uint32_tRSERVED1[24];__IOuint32_tISPR[8];中斷掛起設(shè)置寄存器/*!<偏移量:0x100InterruptSetPendingRegister*/uint32_tRESERVED2[24];__IOuint32_tICPR[8];中斷清除掛起寄存器/*!<偏移量:0x180InterruptClearPendingRegister*/uint32_tRESERVED3[24];__IOuint32_tIABR[8];中斷激活狀態(tài)位寄存器/*!<偏移量:0x200InterruptActivebitRegister*/uint32_tRESERVED4[56];__IOuint8_tIP[240];中斷優(yōu)先級(jí)寄存器/*!<偏移量:0x300InterruptPriorityRegister(8Bitwide)*/uint32_tRESERVED5[644];軟件觸發(fā)方式寄存器__Ouint32_tSTIR;/*!<偏移量:0xE00SoftwareTriggerInterruptRegister*/}NVIC_Type;12345678910111213141516171819
/*STM32分組(5組)方式結(jié)構(gòu)體表達(dá)方式typedefstruct{vu32ISER[2];u32RESERVED0[30];vu32ICER[2];u32RSERVED1[30];vu32ISPR[2];u32RESERVED2[30];vu32ICPR[2];u32RESERVED3[30];vu32IABR[2];u32RESERVED4[62];vu32IPR[15];}NVIC_TypeDef;*/1234567891011121314151617

以上寄存器介紹:

對(duì)一些概念的解釋:
1. 掛起:當(dāng)置位中斷掛起寄存器的時(shí)候,相應(yīng)的中斷將會(huì)被掛起,這是這個(gè)中斷將不會(huì)立即執(zhí)行,而是等待可執(zhí)行的時(shí)候再執(zhí)行;比如高低級(jí)別的中斷同時(shí)產(chǎn)生,就先掛起低級(jí)別的中斷,等高級(jí)別的中斷執(zhí)行完畢,解除并執(zhí)行低級(jí)中斷;
2. 對(duì)中斷優(yōu)先級(jí)控制寄存器的解釋

推薦去觀看一位前輩的博客:
http://blog.csdn.net/DLUTXIE/article/details/7059184?locationNum=4&fps=1

四 編程步驟

(1)選擇優(yōu)先級(jí)分組
/*
1. 此函數(shù)在庫(kù)文件misc.h文件下;
2. 參數(shù)可參照下面圖片:

3. 功能:選擇分組方式;
*/
void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);

栗子:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//搶占優(yōu)先級(jí)可選0~3,響應(yīng)優(yōu)先級(jí)可選0~3;

(2)選擇,配置,并使能中斷
NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn; //選擇EXTI2中斷
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //搶占優(yōu)先級(jí)為2
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02; //響應(yīng)優(yōu)先級(jí)為2
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能EXTI2中斷;
NVIC_Init(&NVIC_InitStructure); //初始化以上參數(shù);

(3)寫(xiě)出相應(yīng)中斷函數(shù)
栗子:
void EXTI2_IRQHandler(void)
{

//邏輯代碼;

EXTI_ClearITPendingBit(EXTI_Line2);
}


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉