基于STM32CubeIDE实现外部中断按钮控制LED灯亮

小白入门,记录一下学习体验及过程。原文可能图片不清晰,如需下载原WORD文档,请右转:
链接:https://pan.baidu.com/s/17X8iB865ZgHgGYnUJ1bSRA
提取码:45z6

官方视频实验
网址:https://www.bilibili.com/video/BV1B7411d757?p=5

实验1:LED点亮

实验2:外部中断EXIT

实验通过BLUE_BUTTON外部中断来实现GREEN_LED的点亮
实验流程:
① 新建文件:STM32 Project
② 配置外部中断文件,对与前面的工程文件可以使用“close project”的方法将其关闭,然后重新建立工程。关闭的方法是先打开Project Explorer,然后点选右键,Close Project。
基于STM32CubeIDE实现外部中断按钮控制LED灯亮

③ 然后新建工程,正确选择开发板STM32的型号,我的是STM32F103RB Nucleo64开发板,因此,在Part Number Search下直接搜索“103RB”即可。
基于STM32CubeIDE实现外部中断按钮控制LED灯亮

④ next后,输入工程名称,stm32F103RB_exitTest,然后next——fish
基于STM32CubeIDE实现外部中断按钮控制LED灯亮

⑤ 在新生成界面下,设置Pinout&Configuration, 如下图所示,在STM32F103RB开发板中,LD2对应PA5,BLUE_BUTTON对应PC13引脚,因此,这里设置PA5为输出模式,USER NAME设置为GREEN_LED2,PC13设置为外部中断输入,用户标签设置为BLUE_BUTTON
基于STM32CubeIDE实现外部中断按钮控制LED灯亮
基于STM32CubeIDE实现外部中断按钮控制LED灯亮
⑥ 配置GPIO,鼠标点选GPIO口,出现如下界面。然后点选PC13…,选择GPIO Mode 即端口模式,这里选择外部下降沿中断模式。如下图所示。同时,鼠标点开GPIO旁边的NVIC,在Enable一栏下打勾勾,使能。
基于STM32CubeIDE实现外部中断按钮控制LED灯亮

⑦ 后面,我把Clock Configuration中设置了一下时钟,一般可以默认即可。这里我把时钟o总线的HCLK 输入64,这样软件会自动配置其后的时钟和Verify。
基于STM32CubeIDE实现外部中断按钮控制LED灯亮

⑧ 生成代码。
基于STM32CubeIDE实现外部中断按钮控制LED灯亮

⑨ 编译和代码调试。主要使用的工具如下。先点击堵头1,然后点击榔头进行编译。这时候如下图所示。
基于STM32CubeIDE实现外部中断按钮控制LED灯亮
基于STM32CubeIDE实现外部中断按钮控制LED灯亮

接着,我们需要在main.c中进行用户程序的录入,也就是当按下button时,led灯亮,然后再按时又熄灭的操作。
① 首先,我们打开Src下的main.c,在主程序前面定义一个变量flag。
基于STM32CubeIDE实现外部中断按钮控制LED灯亮

② 然后修改while文件,在while中定义LED灯亮的程序。这里有个技巧是**使用快捷键“ALT+/”**来进行快速查找函数原型,同时也可以用来补充先前已经定义的用户变量,非常方便,和CodeBlock一样提示功能。
基于STM32CubeIDE实现外部中断按钮控制LED灯亮
基于STM32CubeIDE实现外部中断按钮控制LED灯亮

③ 修改外部触发函数,也就是在有外部触发时,将标志变量flag进行赋值,从而实现led的亮灭控制。在中断程序的用户程序地方补充一下程序,然后编译调试。
基于STM32CubeIDE实现外部中断按钮控制LED灯亮

④ 编译,然后下载到开发板。ok!
基于STM32CubeIDE实现外部中断按钮控制LED灯亮
基于STM32CubeIDE实现外部中断按钮控制LED灯亮

⑤ 实验现象。
基于STM32CubeIDE实现外部中断按钮控制LED灯亮