按键功能

按键功能一、实验目的二、硬件连接三、核心代码解析四、编译下载烧录固件五、实验效果

一、实验目的

读取STM32控制板上的KEY1按键,控制LED指示灯亮灭。

 

二、硬件连接

如下图所示,按键KEY1和LED指示灯为板载元器件,所以不需要外接其他设备。请把type-C数据线连接电脑与STM32控制板的USB Connect接口。

image-20250610104214205

 

三、核心代码解析

打开STM32CUBEIDE,导入工程,程序源码对应的路径为:

初始化外设GPIO,其中LED_ROS_GPIO对应硬件电路的PC14,GPIO模式为输出模式,KEY1_GPIO对应硬件电路的PC15,GPIO模式为输入上拉模式。

image-20250716095726504

image-20250716095822423

打开LED灯

关闭LED灯

控制LED灯状态翻转

读取按键当前状态值,如果按下返回KEY_PRESS=1,松开返回KEY_RELEASE=0。

读取按键K1的状态,需要每10毫秒调用一次。按下KEY1按键返回一次KEY_PRESS,其他情况返回KEY_RELEASE。

每个10毫秒调用Key1_State函数,根据KEY1按键的状态值,控制LED_ROS指示灯亮和灭。

 

四、编译下载烧录固件

在STM32CUBEIDE上的文件管理界面选中要编译的项目,点击工具栏上的编译按钮即可开始编译。

image-20250609174806368

如果没有错误或者警告,则提示编译完成。

image-20250609175148035

按住BOOT0键,再按一下RESET键复位,松开BOOT0键,进入串口烧录模式。然后使用串口烧录工具烧录固件到板子上。

如果有STlink或者JLink,也可以使用STM32CUBEIDE一键烧录固件,更加方便快捷。

 

五、实验效果

MCU_LED灯每隔200毫秒闪烁一次。

当按一下KEY1键时,LED_ROS灯亮,再按一下KEY1键,LED_ROS灯熄灭。每按一下KEY1键,都会改变LED_ROS灯的状态。

image-20250610115503360