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库开发学习笔记之外部中断相关推荐
- S32K系列S32K144学习笔记——GPIO外部中断
一用S32K144苦似海,道友,能不用,千万不去用. 本例程基以下如图所示接口操作,MCU为S32K144,开发平台S32DSworkspace 功能描述:检测信号输入,如有低电平信号输入,则亮灯,无 ...
- STM32学习笔记——EXTI外部中断,光敏传感器控制LED灯
中断系统 中断:在主程序运行过程中,当出现了特定的中断触发条件,CPU就可以暂停当前正在运行的程序去处理中断程序,并把当前程序的地址压入堆栈,中断程序处理完成后把地址弹出堆栈,回到刚刚暂停的位置继续执 ...
- STM8L探索套件学习笔记-EXTI外部中断
http://blog.chinaunix.net/uid-23085164-id-3534045.html
- STM32系统学习——EXTI(外部中断)
一. EXTI 简介 EXTI(External interrupt/event controller)-外部中断/事件控制器,管理了控制器的 20个中断/事件线.每个中断/事件线都对应有一个边沿检测 ...
- 51单片机外部中断实验 设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管
设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管加1显示程序). #inc ...
- Android深度探索(卷1)HAL与驱动开发学习笔记(8)
Android深度探索(卷1)HAL与驱动开发学习笔记(8) 第八章 蜂鸣器驱动 L i n u x驱动的代码重用有很多种方法.可以采用标准C程序的方式.将要重用的代码放在其他的文件(在头文件中声 ...
- RT1064学习笔记-PIT定时器中断
RT1064 周期中断定时器简介 PIT模块是一组计时器,可用于引发中断和触发DMA通道. PIT定时器框图如下图所示: PIT定时器内部有4个计数器(Timer0~Timer3) PIT定时器功能包 ...
- 学习笔记——stm32串口中断函数的逻辑理解
这片文章主要是讲解原子给的代码里面的串口中断的中断函数,前面是我个人的学习路径. 关于stm32串口的学习,主要分为以下几个点 1.USART的功能和内部结构. 功能包括同步.异步模式.双工通信.半工 ...
- esp32外部中断_玩转 ESP32 + Arduino (四) 电容按键 霍尔传感器 外部中断 延时 脉冲检测...
一. 电容输入 touchRead(pin) 及电容输入中断touchAttachInterrupt(pin, TSR , threshold) ESP32专门提供了电容触摸传感器的功能, 共有T0, ...
最新文章
- ASP.NET Core开发之HttpContext
- 计算机的u盘显示桌面,U盘图示在我的电脑显示不出?
- Duilib及demo
- vue.js 三种方式安装--npm安装
- 【18】ASP.NET Core MVC 中的 Model介绍
- 动脑2017android_您肯定要在2017年初尝试的25个新Android库
- Flink从入门到入土
- 李海自学java_JAVA程序设计 实验一
- jquery中几种层级选择器的详细说明
- 云主机安mysql_如何在云服务器 ECS 安装 MySQL
- 医院防统方软件解决方案
- 微信小程序-实现tab选项卡
- 【项目管理/PMP/PMBOK第六版/新考纲】项目资源管理/权力理论/管理方格理论/领导生命周期理论/激励理论/马斯洛需求层次理论/赫兹伯格的双因素理论/X理论和Y理论/弗鲁姆的期望理论
- 自制RS232转485通信模块
- 基于opencv-python的人脸识别、眼睛识别和微笑识别
- Web手机开发框架一览
- IOS手机Charles抓包
- Linux下进程状态转换,Linux进程状态转换图
- 爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,则最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。参考例
- 为什么C++可以重载函数
热门文章
- qt 设置串口起始位_【IT专家】Qt:如何设置主窗口的初始位置?
- python集合操作 读取_python – Django – 如何使用QuerySet过滤来获取对象的子集?...
- php限制下载文件格式,php下载文件 强制任意文件格式下载
- java碰到边界变颜色_求教!!!小球撞墙怎么改变颜色。
- 一个数变成0的概率有多少?(记忆化搜索)
- Master of GCD(差分数组||线段树)
- python机器学习--sklearn数据集使用
- java基础之多态的详细解释_JAVA基础之多态
- 深度学习(3)手写数字识别问题
- python初学篇笔记_Python学习笔记(基础篇)