cube gpio中断_STM32CubeMX学习笔记(3)——EXTI(外部中断)接口使用

本文介绍了如何使用STM32CubeMX配置EXTI外部中断,包括选择MCU、配置时钟、设置GPIO中断模式、生成代码,以及中断回调函数的修改。通过对比HAL库和标准库的代码,展示了HAL库的简洁性和易用性。
摘要由CSDN通过智能技术生成

一、新建工程

1. 打开 STM32CubeMX 软件,点击“新建工程”

2. 选择 MCU 和封装

3. 配置时钟

RCC 设置,选择 HSE(外部高速时钟) 为 Crystal/Ceramic Resonator(晶振/陶瓷谐振器)

选择 Clock Configuration,配置系统时钟 SYSCLK 为 72MHz

修改 HCLK 的值为 72 后,输入回车,软件会自动修改所有配置

4. 配置调试模式

非常重要的一步,否则会造成第一次烧录程序后续无法识别调试器

SYS 设置,选择 Debug 为 Serial Wire

二、EXTI外部中断

2.1 参数配置

在 System Core 中选择 GPIO 设置。

在右边图中找到按键对应引脚,选择 GPIO_EXTIx。

这里的 x 是指挂载在中断线几上,如 GPIO_EXTI0 就是挂载在中断线0上。

开启下降沿触发中断:即在 按下按键时 电平由高变为低时触发,则在 GPIO mode 中选择 External Interrupt Mode with Falling edge trigger detection

开启上升沿触发中断:即在 按下按键后松开时 电平由低变为高时触发,则在 GPIO mode 中选择 External Interrupt Mode with Rising edge trigger detection

开启下降沿上升沿都触发中断:即在 按下时触发,松开时再次触发,则在 GPIO mode 中选择 External Interrupt Mode with Rising/Falling edge trigger detection

如果硬件上已外部上拉或下拉,则在GPIO Pull-up/Pull-down 中选择 No pull-up and no pull-down 既不上拉也不下拉。

如果硬件外部没有上拉,则在GPIO Pull-up/Pull-down 中选择 Pull-up 内部上拉电阻。

配置 NVIC

中断优先级分组规则 Priority Group 默认为4个比特位,一般情况下不改。

勾选刚刚配置的外部中断线0和13,并配置抢占优先级 Preemption Priority 和响应优先级 Sub Priority。

抢占优先级,数字越小,优先级越高

若抢占优先级相同,判断子优先级,同样,数字越小,优先级越高

2.2 生成代码

输入项目名和项目路径

选择应用的 IDE 开发环境 MDK-ARM V5

点击 GENERATE CODE 生成代码

2.3 修改中断回调函数

打开 stm32f1xx_it.c 中断服务函数文件,找到 EXTI0 中断的服务函数 EXTI0_IRQHandler()

中断服务函数里面就调用了 GPIO 外部中断处理函数 HAL_GPIO_EXTI_IRQHandler()

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值