STM32 HAL 中断方式检测按键

任务目标:掌握CubeMX软件配置外部中断的方法

任务内容:采用中断方式检测按键,按键按下后执行:反转指示灯

硬件原理:独立按键有两种设计方式,上拉式按键和下拉式按键;

上拉式按键:按键的一端与地连接,另一端通过上拉电阻与电源VCC连接,当按键按下时, GPIO输入低电平,按键释放时,GPIO输入高电平

下拉式按键:按键的一端与VCC连接,另一端通过下拉电阻与地连接,当按键按下时,输入 高电平,按键释放时,输入低电平

下图为独立按键设置方式和Nucleo开发板的按键电路供参考

本实验设置三个按键进行中断检测分别为PA3 PA4 PA6,LED灯由PA8 PD2控制

参数设置:

在GPIO配置窗口对引脚做如下配置,工作模式:下降沿触发,无上下拉电阻,具体配置如下图所示:

注意:在本实验中外部电路我已经外接了上拉电阻,因此没有使能引脚的上下拉电阻,如果您的外部电路没有上下拉电阻,需要根据具体的电路连接来使能上下拉,再确定触发方式

使能外部中断,使能这三个引脚的外部中断,如下图所示:

设置外部中断优先级,HAL初始化时已经将优先级分组设置为设置为第四组,我们将外部中断线的抢占优先级设置为15,即最低优先级,设置如下所示:

注意:如果再实际的工程应用中,对于中断源的优先级没有特别要求时,可以不必设置中断优先级,而是使用默认的中断优先级。

程序编写

生成MDK工程后,进行应用程序编写,在/* USER CODE BEGIN 4 */和/* USER CODE END 4 */之间添加外部中断回调函数,如下图所示

实验现象

按键1按下灯1亮,按键2按下灯2亮,按键3按下两个灯都亮。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值