外部中断

中断线————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库开发学习笔记之外部中断相关推荐

  1. S32K系列S32K144学习笔记——GPIO外部中断

    一用S32K144苦似海,道友,能不用,千万不去用. 本例程基以下如图所示接口操作,MCU为S32K144,开发平台S32DSworkspace 功能描述:检测信号输入,如有低电平信号输入,则亮灯,无 ...

  2. STM32学习笔记——EXTI外部中断,光敏传感器控制LED灯

    中断系统 中断:在主程序运行过程中,当出现了特定的中断触发条件,CPU就可以暂停当前正在运行的程序去处理中断程序,并把当前程序的地址压入堆栈,中断程序处理完成后把地址弹出堆栈,回到刚刚暂停的位置继续执 ...

  3. STM8L探索套件学习笔记-EXTI外部中断

    http://blog.chinaunix.net/uid-23085164-id-3534045.html

  4. STM32系统学习——EXTI(外部中断)

    一. EXTI 简介 EXTI(External interrupt/event controller)-外部中断/事件控制器,管理了控制器的 20个中断/事件线.每个中断/事件线都对应有一个边沿检测 ...

  5. 51单片机外部中断实验 设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管

    设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管加1显示程序). #inc ...

  6. Android深度探索(卷1)HAL与驱动开发学习笔记(8)

    Android深度探索(卷1)HAL与驱动开发学习笔记(8) 第八章 蜂鸣器驱动   L i n u x驱动的代码重用有很多种方法.可以采用标准C程序的方式.将要重用的代码放在其他的文件(在头文件中声 ...

  7. RT1064学习笔记-PIT定时器中断

    RT1064 周期中断定时器简介 PIT模块是一组计时器,可用于引发中断和触发DMA通道. PIT定时器框图如下图所示: PIT定时器内部有4个计数器(Timer0~Timer3) PIT定时器功能包 ...

  8. 学习笔记——stm32串口中断函数的逻辑理解

    这片文章主要是讲解原子给的代码里面的串口中断的中断函数,前面是我个人的学习路径. 关于stm32串口的学习,主要分为以下几个点 1.USART的功能和内部结构. 功能包括同步.异步模式.双工通信.半工 ...

  9. esp32外部中断_玩转 ESP32 + Arduino (四) 电容按键 霍尔传感器 外部中断 延时 脉冲检测...

    一. 电容输入 touchRead(pin) 及电容输入中断touchAttachInterrupt(pin, TSR , threshold) ESP32专门提供了电容触摸传感器的功能, 共有T0, ...

最新文章

  1. ASP.NET Core开发之HttpContext
  2. 计算机的u盘显示桌面,U盘图示在我的电脑显示不出?
  3. Duilib及demo
  4. vue.js 三种方式安装--npm安装
  5. 【18】ASP.NET Core MVC 中的 Model介绍
  6. 动脑2017android_您肯定要在2017年初尝试的25个新Android库
  7. Flink从入门到入土
  8. 李海自学java_JAVA程序设计 实验一
  9. jquery中几种层级选择器的详细说明
  10. 云主机安mysql_如何在云服务器 ECS 安装 MySQL
  11. 医院防统方软件解决方案
  12. 微信小程序-实现tab选项卡
  13. 【项目管理/PMP/PMBOK第六版/新考纲】项目资源管理/权力理论/管理方格理论/领导生命周期理论/激励理论/马斯洛需求层次理论/赫兹伯格的双因素理论/X理论和Y理论/弗鲁姆的期望理论
  14. 自制RS232转485通信模块
  15. 基于opencv-python的人脸识别、眼睛识别和微笑识别
  16. Web手机开发框架一览
  17. IOS手机Charles抓包
  18. Linux下进程状态转换,Linux进程状态转换图
  19. 爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,则最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。参考例
  20. 为什么C++可以重载函数

热门文章

  1. qt 设置串口起始位_【IT专家】Qt:如何设置主窗口的初始位置?
  2. python集合操作 读取_python – Django – 如何使用QuerySet过滤来获取对象的子集?...
  3. php限制下载文件格式,php下载文件 强制任意文件格式下载
  4. java碰到边界变颜色_求教!!!小球撞墙怎么改变颜色。
  5. 一个数变成0的概率有多少?(记忆化搜索)
  6. Master of GCD(差分数组||线段树)
  7. python机器学习--sklearn数据集使用
  8. java基础之多态的详细解释_JAVA基础之多态
  9. 深度学习(3)手写数字识别问题
  10. python初学篇笔记_Python学习笔记(基础篇)