STM32 HAL库开发入门:GPIO控制LED与按键
创作时间:
作者:
@小白创作中心
STM32 HAL库开发入门:GPIO控制LED与按键
引用
CSDN
1.
https://blog.csdn.net/qq_45217381/article/details/145584685
本文将介绍如何使用STM32 HAL库进行GPIO开发。通过本教程,你将学习到如何使用STM32 CubeIDE配置工程、设置时钟和GPIO,以及编写控制LED和按键的程序。本教程适合有一定嵌入式开发基础的读者。
开发环境
- STM32 CubeIDE
- Proteus 8 Professional(可选)
目标
实现按键控制LED的功能。
一、新建工程
打开STM32 CubeIDE,选择“文件”->“新建”->“STM32 Project”,选择芯片型号STM32F103C6T6A,配置好工程名称后点击完成。
二、配置时钟
在“System Core”中找到“RCC”,配置HSE时钟。将主频设置为72MHz,按下“Enter”键会自动配置好全部内容。
三、配置GPIO
3.1 LED引脚配置
LED引脚为PC13,配置成输出模式。在左侧配置好初始电平、输出速度,可以自定义一个引脚标签。
3.2 按键引脚配置
按键需要配置成输入模式,配置按键引脚为上拉输入模式,按键引脚选择PB7。
四、其他配置
为了增加代码的可读性,配置自动生成代码时生成单独的.c和.h文件。如果需要Debug,还需要进行相应的配置。
五、代码
5.1 生成代码
完成上述配置后,点击“项目”->“Generate Code”自动生成代码。
5.2 配置生成.hex文件
点击“项目”->“属性”,配置生成.hex文件。
5.3 LED状态翻转
编写LED状态翻转的代码:
while (1)
{
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
HAL_Delay(500);
}
5.4 按键控制LED
编写按键检测程序,在检测到按键按下时翻转LED状态:
while (1)
{
// 按键按下
if (HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == 0)
{
// 延时消抖
HAL_Delay(10);
if (HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == 0)
{
// 松手检测
while (!HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin));
// 翻转LED状态
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
}
}
}
六、下载程序
使用“STM32 ST-LINK Utility”工具下载程序到开发板。先连接板子,然后选择.hex文件并点击“start”进行烧录。
热门推荐
赵伟等:2025年各国央行购金行为可能延续
金价还在涨!金饰逼近每克870元,现在还能买金吗?
《中国银屑病生物制剂及小分子药物治疗指南》重磅更新!
个人社保基数包括哪些
全境封锁2最强套装怎么搭配 全境封锁2最强套装搭配攻略
2024中国优质西红柿之乡第二届西红柿文化节在博兴店子镇启动
《怪物猎人荒野》全骨冢位置地图及采集路线推荐
域名什么后缀好
粉色郁金香花语与寓意(浪漫的花语传递爱意)
云电脑鼠标延迟怎么解决视频
集团财务集中管理,如何确保资金高效运作?
戴维斯:詹姆斯曾主动让出23号,但我就是喜欢3号
八字中的命主身主分别指的什么,命主身主怎么算
从头开始复现GRPO【关键模块解析】
最爱林徽因的男人是谁?不是梁思成,不是金岳霖,更不是徐志摩,而是默默无闻的此人
幻听的最佳治愈方法
肺心病病人怎么进行生活护理
房产证加父母名字要什么证件吗
房产证相关问题解答:加名、过户费用及拿不到房产证怎么办
新西伯利亚人的扩张:马扎尔人/乌拉尔人,阿瓦尔人和雅库特人
焦虑症通过中医治疗能彻底治愈吗?
海南昌江金矿:探秘开采历史、资源现状与未来发展前景
2025在职MBA学费一年多少钱?不同类型超全汇总
优化渠道合作策略提升市场竞争力
治疗精神强迫症的药物有哪些
牙髓炎治疗费用详解:根管治疗、盖髓术、牙髓切断术等方案及影响因素
霍去病跟卫青是什么关系
抖音视频中的"幻影"现象:技术解析与成因探讨
麻醉医生活用硫酸镁的几点建议
“有痣人士”对这种痣需谨慎,自查方法看过来