游乐游手机版
首页/AI热点日报/热点详情

STM32MP1 Cortex-M4开发:GPIO按键扫描检测教程

类型:热点整理2026-07-13
STM32MP157A资源扩展板功能概述 硬件详解及资源扩展板支持的项目类型 Cortex-M4 按键扫描实验 实验目的 本次实验旨在让开发者快速上手STM32CubeIDE,熟悉其基本操作与项目开发流程,并掌握STM32MP157A的GPIO引脚作为数字输入的使用方法。通过读取按键K2的状态,实现

STM32MP157A资源扩展板功能概述

硬件详解及资源扩展板支持的项目类型

Cortex-M4 按键扫描实验

实验目的

本次实验旨在让开发者快速上手STM32CubeIDE,熟悉其基本操作与项目开发流程,并掌握STM32MP157A的GPIO引脚作为数字输入的使用方法。通过读取按键K2的状态,实现对板上LED灯的亮灭控制,从而深入理解GPIO输入检测与输出控制的完整编程逻辑。

实验环境

实验硬件要求包括:FS-MP1A开发板(搭载STM32MP157A处理器)、ST-Link仿真器用于调试与烧录。软件环境为STM32CubeIDE集成开发环境,支持Windows XP/7/10(32/64位)等操作系统。准备齐全后即可开始实验。

实验原理

实验核心原理基于STM32 HAL库的GPIO驱动函数。通过调用HAL_GPIO_ReadPin函数,读取按键K2对应IO口(PA0)的当前电平状态。当按键按下时,IO口电平发生跳变,程序据此控制LED(PZ5)的电平输出,实现按键触发LED状态翻转。电路设计中的按键与LED引脚连接关系见下方原理图。

实验步骤

启动STM32CubeIDE,依次选择菜单 File → New → STM32 Project,进入芯片选型界面。在左侧搜索栏输入“STM32MP157A”,从列表中选择对应型号,点击Next继续。

为项目命名,输入项目名称后点击Finish。系统将弹出提示询问是否打开设备配置页面,选择Yes进入配置。

Pinout & Configuration视图的搜索框中,分别输入“PZ5”(LED控制引脚)和“PA0”(按键K2连接引脚)。左键单击PZ5,在右侧属性面板中将引脚模式设置为GPIO_Output;同样将PA0设置为GPIO_Input

需要注意:STM32MP157A作为异构多核处理器,需要为Cortex-M4内核显式分配引脚资源(Pin Reservation)。否则STM32CubeMX将无法自动生成对应的GPIO初始化代码。操作方式:在已选中的引脚上右键,选择Pin Reservation → Cortex-M4即可完成分配。

随后切换到Project Manager选项卡,在Code Generator栏目中,勾选“为每个外设生成单独的.c/.h文件”选项,以便于后续代码维护与阅读。

配置完毕,按下Ctrl+S保存工程,系统将提示是否生成代码。选择Yes,STM32CubeMX将自动生成包含系统时钟、GPIO等初始化代码的完整工程。

最后,在main.c文件的while(1)主循环中添加GPIO读取与判断代码。通过HAL_GPIO_ReadPin读取K2引脚电平,根据高低电平控制LED灯状态翻转。例如,按键按下时点亮LED,松开时熄灭(具体逻辑可根据电路设计调整)。参考代码如下:

代码编写完成后,通过ST-Link将FS-MP1A开发板连接至电脑,按照实验指导中的下载流程,编译并烧录程序至开发板。

实验现象

按下按键K2,观察LED灯状态变化。每按一次,LED灯状态翻转:亮变为灭,灭变为亮。该现象直观验证了GPIO输入检测与输出控制功能的正确实现。

来源:https://m.elecfans.com/article/2117592.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。