外部中断控制小灯原理图分析按键我们根据我们上一节的点亮小灯,接下来我们来通过外部中断来控制小灯,我们可以打开之前生成的MX文件进行对引脚的编辑。** 我们根据原理图,可以发现我们的按键是在PC13引脚,其中一个引脚是复位引脚。 **这里我们就使用用户引脚来配置我们的外部中断,接下来进入我们的stm32cubemx中。 按键外部中断配置这里我们配置这俩个选项的原因是:第一我们的按键的默认电平就是高电平,按键的初始状态就是高电平。 **这里的配置是根据我们的外部中断的高低电平来做一些变换。 **别忘了开启我们的中断,外部中断控制,需要我们的中断设置来开启,才能触发我们的中断事件。配置我们开始更新工程。 代码编写首先先说一下我们想实现的功能,通过外部中断翻转我们的小灯。 **一般我们想使用外部中断,都是要重写中断处理函数,接下来我们一步步找到按键中断的处理的底层。 好接下来我们复制函数明在it下重新编写。 这里我们重写的外部中断上升沿的中断回调函数,这里我们需要做引脚判断处理,假如其他引脚也设置外部中断,它也会进入程序执行一遍,所以我们需要对引脚进行判断。 **进行判断之后我们对引脚进行处理进行翻转电平,使得小灯完成亮灭的操作! 测试了一下发现了一个错误, **这里有俩个中断回调处理,我们是下降沿触发我们的中断重写函数,所以我们要选择下面的函数,由于我们这里选错了,导致我们的按键按下小灯不能翻转电平。** **好了整个程序完成了!按下按键就能实现翻转小灯的效果。 注意事项**在编写的时候发现假如你有多个按键按下,在if判断按键按下的电平会导致按键的效果不会出现,这里我采用了了if-else if来解决按键的效果不会出现。简单来说,假如是外部中断来处理我们的多个按键,我们需要通过if-else if来轮询按键的速度会快一点吧。或者用switch的效果也可以多个按键中断的解决。 |
【STM32H7S78-DK评测】CoreMark移植和优化--兼记printf重定向实现方法及常见问题
实战经验 | 从CubeMX下载生成STM32元件封装库
【STEVAL-STWINKT1B测评】1、点亮LED
有奖直播 | 详解最新入门级32位MCU-STM32C071
新品STM32C071不简单,高达128KB闪存和24KB RAM,让成本5美元的图显系统也拥有丝滑GUI!
【STM32H7S78-DK评测】移植AI框架TensorFlow Lite【上篇】
【STM32H7S78-DK评测】移植边缘AI推理框架——TFLM(TensorFlow Lite for Microcontrollers)上篇
使用 STM32CubeMX 生成配置代码的文件结构
【STM32H7S78-DK评测】搭建基于ST官方VSCode扩展的STM32开发环境
【NUCLEO-H533RE评测】+09 低功耗测试