国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 6515|回復(fù): 0
打印 上一主題 下一主題

STM32GPIO外部中斷總結(jié)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2019-3-13 10:37:34 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
1
STM32中斷分組

STM32 的每一個(gè)GPIO都能配置成一個(gè)外部中斷觸發(fā)源,這點(diǎn)也是 STM32 的強(qiáng)大之處。STM32 通過(guò)根據(jù)引腳的序號(hào)不同將眾多中斷觸發(fā)源分成不同的組,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0為第一組,那么依此類(lèi)推,我們能得出一共有16 組,STM32 規(guī)定,每一組中同時(shí)只能有一個(gè)中斷觸發(fā)源工作,那么,最多工作的也就是16個(gè)外部中斷。STM32F103 的中斷控制器支持 19 個(gè)外部中斷/事件請(qǐng)求。每個(gè)中斷設(shè)有狀態(tài)位,每個(gè)中斷/事件都有獨(dú)立的觸發(fā)和屏蔽設(shè)置。STM32F103 的19 個(gè)外部中斷為:

線(xiàn) 0~15:對(duì)應(yīng)外部 IO 口的輸入中斷。

線(xiàn) 16:連接到 PVD 輸出。

線(xiàn) 17:連接到 RTC 鬧鐘事件。

線(xiàn) 18:連接到 USB 喚醒事件。

2
外部中斷的配置過(guò)程

1.配置觸發(fā)源GPIO口

因?yàn)镚PIO口作為觸發(fā)源使用,所以將GPIO口配置成輸入模式,觸發(fā)模式有以下幾種:

a.GPIO_Mode_AIN ,模擬輸入(ADC模擬輸入,或者低功耗下省電)

b.GPIO_Mode_IN_FLOATING ,浮空輸入

c.GPIO_Mode_IPD ,帶下拉輸入

d.GPIO_Mode_IPU ,帶上拉輸入 

GPIO_InitTypeDef GPIO_InitStructure;//定義結(jié)構(gòu)體

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//使能時(shí)鐘

GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_2;//選擇IO口   PE2

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//設(shè)置成上拉輸入

GPIO_Init(GPIOE, &GPIO_InitStructure);//使用結(jié)構(gòu)體信息進(jìn)行初始化IO口


2.使能AFIO復(fù)用時(shí)鐘功能

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); 

3.將GPIO口與中斷線(xiàn)映射起來(lái)

GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);

4.中斷線(xiàn)上進(jìn)行中斷初始化

EXTI_InitTypeDef EXTI_InitStructure;//定義初始化結(jié)構(gòu)體

EXTI_InitStructure.EXTI_Line=EXTI_Line2; //中斷線(xiàn)的標(biāo)號(hào) 取值范圍為EXTI_Line0~EXTI_Line15

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中斷模式,可選值為中斷 EXTI_Mode_Interrupt 和事件 EXTI_Mode_Event。

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//觸發(fā)方式,可以是下降沿觸發(fā) EXTI_Trigger_Falling,上升沿觸發(fā) EXTI_Trigger_Rising,或者任意電平(上升沿和下降沿)觸發(fā)EXTI_Trigger_Rising_Falling

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);//根據(jù)結(jié)構(gòu)體信息進(jìn)行初始化


5.中斷優(yōu)先級(jí)配置

NVIC_InitTypeDef NVIC_InitStructure;//定義結(jié)構(gòu)體

NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn; //使能外部中斷所在的通道

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //搶占優(yōu)先級(jí) 2,

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02; //子優(yōu)先級(jí) 2

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中斷通道

NVIC_Init(&NVIC_InitStructure); //根據(jù)結(jié)構(gòu)體信息進(jìn)行優(yōu)先級(jí)初始化

6.外部中斷服務(wù)函數(shù)的編寫(xiě)

外部中斷函數(shù)分別為:

EXPORT EXTI0_IRQHandler

EXPORT EXTI1_IRQHandler

EXPOR T EXTI2_IRQHandler

EXPORT EXTI3_IRQHandler

EXPORT EXTI4_IRQHandler

EXPORT EXTI9_5_IRQHandler

EXPORT EXTI15_10_IRQHandler

中斷線(xiàn) 0-4 每個(gè)中斷線(xiàn)對(duì)應(yīng)一個(gè)中斷函數(shù),中斷線(xiàn) 5-9 共用中斷函數(shù) ,EXTI9_5_IRQHandler,中斷線(xiàn) 10-15 共用中斷函數(shù) EXTI15_10_IRQHandler。 
void EXTI2_IRQHandler(void)

{

if(EXTI_GetITStatus(EXTI_Line2)!=RESET)//判斷某個(gè)線(xiàn)上的中斷是否發(fā)生

{

 中斷邏輯…

 EXTI_ClearITPendingBit(EXTI_Line2);   //清除 LINE 上的中斷標(biāo)志位

   }

}

使用按鍵進(jìn)行外部中斷的時(shí)候,一般都需要進(jìn)行按鍵延時(shí)消抖以及松手檢測(cè)的相關(guān)處理,中斷函數(shù)可以參看以下代碼:
void EXTI2_IRQHandler(void)

{

 delay_ms(10);//延時(shí)消抖

 if(KEY2==0)    //按鍵真的被按下

  {

   LED0=!LED0;

  }

 while(KEY2!=0);//等待松手

 EXTI_ClearITPendingBit(EXTI_Line2); //清楚中斷標(biāo)志位

}

當(dāng)然,如果你的按鍵是允許長(zhǎng)按功能的,那么就進(jìn)行別的邏輯操作,這里不作研究。

信盈達(dá)靠技術(shù)打天下
以下課程可免費(fèi)試聽(tīng)C語(yǔ)言電子PCB、STM32、LinuxFPGA、JAVA、安卓等。
想學(xué)習(xí)的你和我聯(lián)系預(yù)約就可以免費(fèi)聽(tīng)課了。
宋工企鵝號(hào):35--24-65--90-88   Tel/WX:173--17--95--19--08


本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 97国产成人精品免费视频 | 成人三级精品视频在线观看 | 青草香蕉精品视频在线观看 | 四虎1515hh永久久免费 | 四虎影视在线永久免费观看 | 青青热久免费精品视频在首页 | 黄在线观看www免费看 | 欧美一区二区放荡人妇 | 青青热久久国产久精品秒播 | 成年人网站在线 | 国产成人免费在线观看 | 欧美日韩精品一区二区另类 | 一区在线免费 | 日本三级欧美三级人妇视频黑白配 | 国产一区二区在线播放 | 日韩毛片免费在线观看 | 国产成人精品影视 | 在线观看亚洲 | 欧美日韩一区二区在线观看 | 色综合天天射 | 国产视频首页 | 亚洲一区二区三区四区在线 | 国产精品久久久久国产精品三级 | 99久久精品久久久久久清纯 | 日本亚洲欧美在线 | 国产亚洲一区二区三区在线观看 | 日日爱网 | 日韩免费高清完整版 | 亚洲品色永久网址入口app | 国产69精品久久久久99不卡 | 免费三级大片 | 国产午夜精品视频 | 九一国产精品 | 操操操网站 | 亚洲第一夜 | 久久精品国产一区 | 亚洲精品国产精品国自产观看 | 久九九久福利精品视频视频 | 噜噜在线| 睡美人免费观看完整版韩国 | 亚洲成年网 |