STM32-03基于HAL库(CubeMX+MDK+Proteus)输入检测案例(按键控制LED)

一、功能需求分析

搭建完成开发STM32开发环境之后,开始GPIO的学习。上一节已经测试了使用GPIO的输出模式,实现LED点亮的功能。
本次案例实现GPIO的输入检测功能,实现按键状态检测,通过按键状态控制LED。

需求分析:

  1. 接线:PA6-KEY1、PA7-KEY2、PA0-LED1、PA1-LED2;
  2. KEY1控制LED1、KEY2控制LED2;
  3. 按键闭合高电平,断开低电平;
  4. LED为低电平驱动方式。

整体的思路是,通过输入检测获取开关状态,判断开关状态控制输出,实现LED的点亮和熄灭。

二、Proteus绘制电路原理图

Proteus绘制需要对基本元器件的名称有一定了解,如下方的发光二极管LED、电阻RES,可以在网上查找对应的元器件名称列表,方便以后绘制。

绘制电路原理图的步骤:创建画布=》芯片选型及放置=》元器件选型及放置=》连接电路=》修改元器件参数=》仿真运行。

下图为所需元器件清单。
在这里插入图片描述

下图为电路原理图。
在这里插入图片描述

三、STMCubeMX 配置引脚及模式,生成代码

接下来,根据原理图绘制,创建CubeMX项目,配置引脚及工作模式,生成MDK项目代码。

创建项目,在Pinout配置模块,点击PA0,选择GPIO_Output推挽输出模式,同

### 使用 STM32 HAL CubeMXMDK 进行项目开发 #### 工具准备 在开始之前,确保已经安装好必要的工具,包括但不限于STM32CubeMXMDK以及Proteus仿真软件[^3]。 #### 创建新项目并配置硬件参数 启动STM32CubeMX,在欢迎界面上点击“New Project”,选择目标微控制器型号。之后进入图形化界面设置时钟树、GPIO等功能模块的工作状态,并完成对外围设备如定时器、串口通信接口等的基础设定。此过程中,STM32CubeMX会自动生成初始化代码片段,极大地方便了后续编程工作[^4]。 #### 生成初始化代码框架 当所有硬件资源都已妥善安排完毕后,可以通过菜单栏中的“Project->Generate Code”选项让STM32CubeMX依据当前配置情况生产适用于特定IDE(如MDK)的工程项目文件夹结构及其内部包含的部分源码文件。这些由STM32CubeMX产生的模板不仅遵循良好的编码习惯而且兼容主流嵌入式操作系统内核,为快速构建稳定可靠的应用程序奠定了坚实基础[^2]。 #### 编写应用程序逻辑 利用MDK打开刚刚创建好的工程目录,此时可以看到里面包含了多个.c/.h格式的头文件和函数定义文档。按照实际需求修改main()入口处的内容,加入调用HALAPI实现具体业务流程所需的语句。例如要控制LED灯亮灭,则需先声明对应的GPIO端口号再执行高低电平切换操作: ```c // 定义 LED 所连接 GPIO 引脚编号 #define LED_PIN GPIO_PIN_13 int main(void){ /* 初始化全局变量 */ // 启动系统时钟同步机制 // 调用 HAL_Init 函数进行底层驱动层初始化 while (1){ // 设置指定引脚输出高电平使LED发光 HAL_GPIO_WritePin(GPIOA, LED_PIN , GPIO_PIN_SET); // 延迟一段时间 // 将该引脚拉低关闭LED HAL_GPIO_WritePin(GPIOA, LED_PIN , GPIO_PIN_RESET); // 再次延迟等待下次循环... } } ``` 以上就是使用STM32 HAL搭配CubeMXMDK开展嵌入式产品设计的一般步骤概述[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值