【NUCLEO-L4R5ZI开发板试用体验】+外部按键中断触发点亮LED灯

  • shiyu
  • LV3工程师
  • |      2018-08-06 20:17:56
  • 浏览量 1034
  • 回复:0
一直对STM32外部中断很好奇,不知道是怎么实现的,翻了翻资料,看了一下中断机制原理,今天就来分享一下在调用HAL库如何实现外部中断。:):) a、先说一下实现的目标:通过按键,触发外部中断,然后对两颗红、蓝LED灯的状态进行翻转,即亮了就让其变成灭,灭了就变成亮。 b、实现原理:将按键的引脚映射到外部中断线上,当发生了按键动作,进入中断处理函数,然后将LED灯进行翻转。 下面是源码实现过程: 1、先打开一个工程框架,如下图: 2、先配好基本的系统时钟,使能LED灯的时钟并初始化,然后对按键映射的中断线进行配置,最后系统进入一个while循环,搭好一个总的工程框架。 中断线配置源码如下:此处按钮是 PC13脚,所以中断线映射为EXTI Line13,所以用了EXTI15_10_IRQn 3、中断处理函数编写,这里因为HAL库,已经固定了中断的进入函数名,所以只能套用函数名void EXTI15_10_IRQHandler(void): 4、中断处理的回调函数编写:里面有个弱函数,用户自己编写实现想要的功能,此处便是实现让两颗LED灯进行按钮中断翻转处理,如下: 5、编译程序,下载到开发板,效果如下:两颗红、蓝LED灯,随着按键进行状态翻转变化。 OK,这个就是一个简单的外部中断实验,后续继续:lol:lol
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子