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”进行烧录。
热门推荐
左右逢源 阜阳打造综合交通枢纽城市
汽车EBD故障灯亮怎么解决
银行理财风险承受能力评估全攻略
比特币价格受减半事件影响的深度分析
金铲铲之战S13赛季:三套热门运营玩法阵容详解
刘备与刘秀:统一之路的异同与成败分析
阐教?截教?人教?一张图带你读懂《封神》里错综复杂的神仙关系
武昌叶开泰朴濬医生丨春困、烦躁?如何应对春季情绪波动和睡眠障碍
资质合规是什么?一文读懂其重要性和实施方法
不小心把文件删了怎么办?六种实用的文件恢复方法
项目投后管理怎么做
封神演义截教十大法宝:化血神刀与万刃车的威力
如何删除电脑上的多余用户名
失踪的巨球和多出来的细节:韦伯望远镜拍到草帽星系惊人画面
黑米粥的营养价值
青海湖:从淡水湖到咸水湖的演变历程
微软账户和本地账户有什么区别?如何切换登录账户?
预测的奥秘:中西方预测术的比较与融合
居民不出钱、企业有微利,这个老旧小区咋改造的?
年龄增长与睡眠问题
【HSPICE电路设计实战】:理论与实践的完美结合
五腧穴及临床应用
如何正确运用红点来达到视觉引导的效果?
全年1-12月国内最佳旅行目的地清单,一文get√各个季节的美!
金骏眉红茶最佳冲泡温度推荐
日常生活中的6个API实际示例
皇马夏窗再掀波澜:签约姆巴佩后,三位置补强计划曝光
小升初数学真题试卷怎么选择?
Anaconda下载安装/环境配置/Pycharm集成 全过程详细解析
利率债供给对国债收益率的影响探究