娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年02月28日(星期五)

正在發生

2020年02月28日 | 嵌入式系統學習——STM32之外部中斷

發布者:心滿愿望 來源: eefocus關鍵字:嵌入式系統  STM32  外部中斷 手機看文章 掃描二維碼
隨時隨地手機看文章

STM32與51相比,多了很多資源,其中外部中斷就是被擴展了很多。51的外部中斷只有2個,但是STM32不是,STM32的每個IO都可以作為外部中斷輸入。 


STM32的中斷控制器支持19個外部中斷/事件請求:


線0~15:對應外部IO口的輸入中斷。

線16:連接到PVD輸出。

線17:連接到RTC鬧鐘事件。

線18:連接到USB喚醒事件。

每個外部中斷線可以獨立的配置觸發方式(上升沿,下降沿或者雙邊沿觸發),觸發/屏蔽,專用的狀態位。


IO口外部中斷在中斷向量表中只分配了7個中斷向量,也就是只能使用7個中斷服務函數:

從表中可以看出,外部中斷線5~9分配一個中斷向量,共用一個服務函數,外部中斷線10~15分配一個中斷向量,共用一個中斷服務函數。


中斷服務函數列表:


EXTI0_IRQHandler           

EXTI1_IRQHandler

EXTI2_IRQHandler           

EXTI3_IRQHandler           

EXTI4_IRQHandler           

EXTI9_5_IRQHandler         

EXTI15_10_IRQHandler       


STM32F103系列上面,總共有60個可屏蔽中斷,相比于51多了那么多中斷,那么對于這些中斷的管理也是比51更加的復雜。


中斷管理方法:


首先,對STM32中斷進行分組,組0~4。同時,對每個中斷設置一個搶占優先級和一個響應優先級值。


分組配置是在寄存器SCB->AIRCR中配置:

搶占優先級 & 響應優先級區別:


高優先級的搶占優先級是可以打斷正在進行的低搶占優先級中斷的。

搶占優先級相同的中斷,高響應優先級不可以打斷低響應優先級的中斷。

搶占優先級相同的中斷,當兩個中斷同時發生的情況下,哪個響應優先級高,哪個先執行。

如果兩個中斷的搶占優先級和響應優先級都是一樣的話,則看哪個中斷先發生就先執行;


舉例:


假定設置中斷優先級組為2,然后設置中斷3(RTC中斷)的搶占優先級為2,響應優先級為1。中斷6(外部中斷0)的搶占優先級為3,響應優先級為0。中斷7(外部中斷1)的搶占優先級為2,響應優先級為0。


那么這3個中斷的優先級順序為:中斷7>中斷3>中斷6。


特別說明:

一般情況下,系統代碼執行過程中,只設置一次中斷優先級分組,比如分組2,設置好分組之后一般不會再改變分組。隨意改變分組會導致中斷管理混亂,程序出現意想不到的執行結果。


中斷初始化一般步驟:

注:每一塊開發板對應電路都不相同,編寫代碼需要對應自己的板子,本人兩個LED燈對應的GPIO為:GPIOD13和GPIOD14,并且是共陰極。兩個按鍵對應的GPIO為:GPIOC13和GPIOE0,并且共陰極。




本實驗用到了按鍵和LED,初始化程序前文已講,


LED初始化函數:



#include "stm32f10x.h"


#define LED1 PDout(13)// PB13

#define LED2 PDout(14)// PB14


void LED_Init(void)

{

GPIO_InitTypeDef GPIOINIT;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

GPIOINIT.GPIO_Mode = GPIO_Mode_Out_PP;

GPIOINIT.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14;

GPIOINIT.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOD, &GPIOINIT);

GPIO_ResetBits(GPIOD, GPIO_Pin_13 | GPIO_Pin_14);

}


KEY初始化函數:


#include "stm32f10x.h"


#define KEY0 GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13)

#define KEY1 GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_0)


void KEY_Init(void)

{

GPIO_InitTypeDef GPIOInit;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOE, ENABLE);

GPIOInit.GPIO_Mode = GPIO_Mode_IPU;

GPIOInit.GPIO_Pin = GPIO_Pin_13;

GPIOInit.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOC, &GPIOInit);

GPIOInit.GPIO_Mode = GPIO_Mode_IPU; //上拉輸入

GPIOInit.GPIO_Pin = GPIO_Pin_0;

GPIOInit.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOE, &GPIOInit);

}


中斷初始化函數:


void EXIT_Init(void)

{

GPIO_InitTypeDef GPIOInit;

EXTI_InitTypeDef EXTIInit;

NVIC_InitTypeDef NVICInit;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

GPIOInit.GPIO_Mode = GPIO_Mode_IPU;

GPIOInit.GPIO_Pin = GPIO_Pin_13;

GPIOInit.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOC, &GPIOInit);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13);

EXTIInit.EXTI_Line = EXTI_Line13;

EXTIInit.EXTI_LineCmd = ENABLE;

EXTIInit.EXTI_Mode = EXTI_Mode_Interrupt;

EXTIInit.EXTI_Trigger = EXTI_Trigger_Falling;

EXTI_Init(&EXTIInit);

NVICInit.NVIC_IRQChannel = EXTI15_10_IRQn;

NVICInit.NVIC_IRQChannelCmd = ENABLE;

NVICInit.NVIC_IRQChannelPreemptionPriority = 2;

NVICInit.NVIC_IRQChannelSubPriority = 2;

NVIC_Init(&NVICInit);

}


中斷服務子程序:


void EXTI15_10_IRQHandler(void)

{

delay_ms(10);

if(KEY0 == 0)

{

LED1 = !LED1;

LED2 = !LED2;

}

EXTI_ClearITPendingBit(EXTI_Line13);

}


主函數:


int main(void)

{

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

delay_init();

LED_Init();

EXIT_Init();

KEY_Init();

uart_init(115200);

LED1 = 1;

while(1)

{

printf("okrn");

delay_ms(1000);

}

}

關鍵字:嵌入式系統  STM32  外部中斷 引用地址:嵌入式系統學習——STM32之外部中斷

上一篇:STM32 嵌入式學習入門(0)——C語言基礎復習
下一篇:嵌入式stm32學習:外部中斷

推薦閱讀

  這是一個不同尋常的春節。2018年2月15日下午19點,吉利汽車CFO李軼梵并沒有按照習慣去美國過春節,他在微信朋友圈寫道:27年來第一次留在國內和爸爸一起年夜飯。下面就隨汽車電子小編一起來了解一下相關內容吧。?吉利“閃購”戴姆勒背后:資金來源于哪?  幾天以后,面臨他的是通宵“作戰”。這是一場經不起任何閃失的戰役,容不得有半點差錯,更不...
日前,加州機動車管理局(DMV,Department of Motor Vehicles) 公布了2018年度的自動駕駛年度成績單。在榜單中共有48家公司,呈現了他們在2017年12月1日到2018年11月30日之間的路測成果。在這份榜單的公司中包含了各大技術公司和車廠,其中最為耀眼的當屬谷歌旗下的Waymo,在榜單上Waymo的數據一騎絕塵,而另一個“亮點”當屬蘋果了,因為蘋果和谷歌...
摘要 主要介紹了嵌入式編程中幾個常用,但軟件編程中用得不是很多的C語言知識。包括位操作、條件編譯、結構體和結構體指針、typedef聲明類型、以及extern變量聲明、static關鍵字等內容。 本文并沒有將相關C語言知識點介紹地很詳細,畢竟這么多知識點要想掌握絕對不是看幾篇文檔就能掌握的。因此博主建議,如果上述的C語言知識掌握得還不是很好的話...
測量三極管管腳的方法有多種,其中實驗室常用的是利用萬用表和三極管各管腳的特點進行測量,但由于三極管各個引腳間的電壓、電流關系復雜,且三極管本身體積較小,給測量帶來很大不便,而目前市場上還沒有對三極管管腳、類型自動判別的裝置。因此,設計出一款能夠自動判別三極管管腳、類型的電路顯得尤為重要。1硬件電路組成原理根據目前常用三極管的類型...

史海拾趣

問答坊 | AI 解惑

單片機資料寶典

單片機資料寶典.,學習單片機相當OK的典籍哦…

查看全部問答∨

不可不看的職場故事

如下職場故事將告訴我們,職場的一切得失都是渺小的,沒有人會在臨死的時候,后悔自己沒有多花點時間在辦公室工作。追求快樂和平安幸福,才是人的一生中最重要的事情。  (1)有一次,一個老強盜帶著徒弟去搶劫銀行,被警方追捕。兩人狂逃,差點兒 ...…

查看全部問答∨

有誰需要c8051f系列單片機的?

我司重點推廣c8051f系列單片機 c8051f330/c8051f120/仿真器部分參考報價 c8051f330 9元/片 c8051f330st 125元/套 原裝EC3 390元/套(配套下載線+光盤+運費) c8051f單片機仿真器 90元/套(配套下載線+光盤+運費) c8051f120 55元/片 c8051f ...…

查看全部問答∨

VxWorks上的類靜態成員變量有問題!!!(付例子代碼)

各位老大,最近在vxWorks上作有關C++的東西,發現一個很嚴重的問題。 類的靜態成員變量無法被認識!!! 以下為我的代碼: #include \"stdio.h\" extern void ace_test_ren(void); class Demo { public:         void ...…

查看全部問答∨

如何實現 系統設計中不同IP CORE 時鐘同步?

如何實現 系統設計中不同IP CORE 時鐘同步?   在片上系統設計中,調用不同IP CORE ,由于不同IP CORE 對時鐘要求不同,怎樣才能使這些IP CORE 時鐘全同步?…

查看全部問答∨

緊急求助:搭建bochs虛擬機后,進不了DLX Linux的登錄界面?

總是出現couldn\'t open ROM image file\' c:\\boch-2.0.2/BIOS-bochs-latest\'。 這是怎么回事?…

查看全部問答∨

找個資料!!!!急急急

大家聽說過一個無線電臺叫 啥 (具體我不知道。。。。)英文諧音是  斧蕊為噢。。。 有大家知道英文拼寫不…

查看全部問答∨

論壇使用過程中一個不方便的地方

經常用eeworld,發現這里網友的熱情都很高,而且管理員都很負責,社區的問題都及時得到了解決。這不是虛晃之言,前幾天管理員還給我打來電話,詢問我在論壇上曾經出現過的一個問題,當時讓我很是驚訝。上過的論壇很多了,但是一個管理員,肯如此平 ...…

查看全部問答∨

2012LED照明產業發展狀況分析

  LED產業自興起以來在節能、高效、長壽命等一系列光環的籠罩下,產業的發展一直被寄予厚望,但中國的LED產業起步較晚,長時間的“零門檻兒”準入原則,使其本身具備“行業亂、產品雜、企業難“等特點,行業整體呈現出“高不成低不就”的狀況。而 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 八宿县| 潼关县| 深圳市| 鄢陵县| 南通市| 武乡县| 天峨县| 临泽县| 禹城市| 喜德县| 太谷县| 洪泽县| 余干县| 前郭尔| 彭阳县| 隆德县| 丹棱县| 灵川县| 上思县| 天台县| 榆社县| 达日县| 涪陵区| 大悟县| 宿迁市| 沧源| 宜兰市| 云林县| 开封市| 沿河| 资中县| 华安县| 香河县| 麦盖提县| 日土县| 桓台县| 辛集市| 南丹县| 和顺县| 依兰县| 新津县|