基于STM32CubMX和HAL库的外设开发(七、GPIO作为外部中断)

本文介绍了基于STM32CubMX和HAL库的GPIO外部中断开发,包括按键中断识别和串口中断收发。在按键中断部分,详细阐述了配置引脚、设置中断模式和NVIC使能,以及如何处理按键抖动问题。对于串口中断,讲解了使能中断、编写代码以及中断收发的常用接口和回调函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于STM32CubMX和HAL库的外设开发

第七讲 GPIO作为外部中断

一、外部中断简介

  • STM32中含有多个外部中断号(外部中断号的命名与对应引脚的最后一个引脚号保持一致EXTIx),
  • 一个外部中断号对应了多个GPIO引脚(所以当使用其中一个引脚产生外部中断的时候,其余的引脚便不可以使用外部中断了)
  • 中断号对应的地址叫做中断向量(中断地址),不同的中断号对应不同的中断地址,或者多个中断号对应一个中断地址(一一对应或者是多一对应的关系),
  • 不同中断地址的作用就是,在每个中断号对应的代码中编写程序就可以通过指针直接跳到相应的中断地址,从而达到多个控制的作用。
  • 抢占优先级:级别高的优先级可以打断级别低的优先级
  • 子优先级 :级别高的优先级不可以打断级别低的优先级,但是当中断同时到达时,级别高的优先级优先得到执行(不可以抢)
  • STM32中用户可以配置4位优先级,

二、示例一:按键的中断识别

即每按一次按键,led0状态反转,我们还是结合具体实例来了解终端功能的实现
原理图如下,可以结合第二讲 LED灯的点亮来对比理解
在这里插入图片描述
在这里插入图片描述
分析
按键触发:1-0-1(可以下降沿也可以上升沿触发函数),然后在中断函数中使引脚的电平取反

1、配置引脚为外部中断模式

在这里插入图片描述

2、配置GPIO参数,触发沿,上下拉

在这里插入图片描述
**注意注意:**这里因为原理图上显示按键KEY1没法输出高电平

3、到NVIC中使能相应中断(有需要的可以配置优先级)

在这里插入图片描述

4、生成代码
5、编写代码
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
   
   
 HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_5);
}

如果按键容易抖动,为了避免

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值