hal库开启中断关中断_stm32的HAL库开发学习笔记之外部中断
外部中斷
中斷線————EXTI線0~15(對應外部IO口的輸入中斷)
每個IO口都可以作為外部中斷輸入
每個中短線可以獨立的配置觸發方式(上升沿,下降沿,雙邊沿),觸發/屏蔽,專用狀態位。
GPIO與中斷線映射關系
EXTI0->PA0,PB0,PC0,……PI0
EXTI1->PA1,PB1,PC1,……PI1
........................
EXTI15->PA15............
具體引腳通過配置寄存器SYSCFG_EXTIRx選擇,四位,選擇16個IO口
七個中斷服務函數
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
EXTI9_5_IRQHandler (共用)
EXTI15_10_IRQHandler (共用)
外部中斷配置
GPIO_InitTypeDef GPIO_Initure;
GPIO_Initure.Pin=GPIO_PIN_0; //PA0
GPIO_Initure.Mode=GPIO_MODE_IT_RISING; //上升沿觸發
GPIO_Initure.Pull=GPIO_PULLDOWN;
HAL_GPIO_Init(GPIOA,&GPIO_Initure)
(只需在GPIO初始化時設置MODE即可)
通用中斷處理函數(位于gpio.c)
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
{
if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
{
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
HAL_GPIO_EXTI_Callback(GPIO_Pin);//中斷回調函數
}
}
中斷回調函數
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
switch(GPIO_Pin)
{
case GPIO_PIN_0:
//控制邏輯
break;
case GPIO_PIN_2:
//控制邏輯
break;
}
}
外部中斷一般配置步驟
1.使能IO口時鐘。
2.初始化IO口,設置觸發方式(輸入方式):HAL_GPIO_Init();
3.設置中斷優先級,并使能中斷通道。
4.編寫中斷服務函數:
函數中調用外部中斷通用處理函數HAL_GPIO_EXTI_IRQHandler。
5.編寫外部中斷回調函數:HAL_GPIO_EXTI_Callback;
(該函數由通用中斷處理函數HAL_GPIO_EXTI_IRQHandler調用)
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的hal库开启中断关中断_stm32的HAL库开发学习笔记之外部中断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡不激活能提额吗?银行的这波操作让我
- 下一篇: kindle的xray怎么用_Xray使