本文主要是介绍【STM32】HAL库LED点灯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、要求
- 二、HAL库介绍
- 三、实验
- (一)环境配置
- (二)LED周期闪烁
- 1.要求
- 2.进行实验
- 3.实践结果
- (三)LED中断
- 1.要求
- 2.进行实验
- 3.实践结果
- 四、总结
- 五、参考
一、要求
了解并掌握HAL库函数开发方法。安装 stm32CubeMX,配合Keil,使用HAL库方式完成下列任务:
1、重做上一个LED流水灯作业,用GPIO端口完成2只LED灯的周期闪烁。
2、接上,再用GPIO端某一管脚接2个开关(用杜邦线模拟代替)。采用中断模式编程,当2分开关接高电平时,对应的两个LED灯停止工作(即停止周期性闪烁),接低电平时,恢复工作。
二、HAL库介绍
STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。HAL库的推出,可以说ST也慢慢的抛弃了原来的标准固件库,这也使得很多老用户不满。但是HAL库推出的同时,也加入了很多第三方的中间件,有RTOS,USB,TCP / IP和图形等等。和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。
三、实验
(一)环境配置
1.安装 stm32CubeMX
链接: https://www.st.com/en/development-tools/stm32cubemx.html
2.安装JDK
链接: 链接: https://pan.baidu.com/s/1E7V7SCE5LQQ9oDIboqqJkw?pwd=9cmq
提取码: 9cmq
(二)LED周期闪烁
1.要求
重做上一个LED流水灯作业,用GPIO端口完成2只LED灯的周期闪烁。
2.进行实验
(1)新建项目
(2)选择芯片
(3)系统、时钟与管角配置
(4)项目信息填写
(5)生成项目
(6)编写代码使LED闪烁
在main.c中的while(1)中写下如下代码:
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); HAL_Delay(1000); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); HAL_Delay(1000);
3.实践结果
(三)LED中断
1.要求
用GPIO端某一管脚接2个开关(用杜邦线模拟代替)。采用中断模式编程,当2分开关接高电平时,对应的两个LED灯停止工作(即停止周期性闪烁),接低电平时,恢复工作。
2.进行实验
(1)管角配置与外部中断
对于开关对应管脚PA1,设置其触发方式为上升沿触发
External Interrupt Mode with Rising edge trigger detection上升沿
External Interrupt Mode with Falling edge trigger detection下降沿
External Interrupt Mode with Rising/Falling edge trigger detection上升沿和下降沿
User Label处设置名字为 A1_EXIT
外部中断:
(2)编写代码
重写HAL_GPIO_EXTI_Callback函数,写在main函数下方
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{if( GPIO_Pin == A1_EXIT_Pin){HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);}
}
3.实践结果
四、总结
通过本次实验,我不仅掌握了HAL库的基本用法,还提高了对嵌入式系统开发的理解。HAL库极大地简化了硬件控制的编程过程,使我们能够更专注于应用层的开发。
以上为此次学习成果,如有问题,烦请指正。
五、参考
参考博客:
安装stm32cubeMX使用HAL库点亮LED流水灯
链接: https://blog.csdn.net/weixin_56102526/article/details/120877293
搭建STM32开发环境——STM32CubeMX,Keil5
链接: https://blog.csdn.net/qq_43279579/article/details/112213196
STM32实现LED闪烁——基于HAL库
链接: https://blog.csdn.net/qq_43279579/article/details/112233696
stm32外部中断模式控制灯亮灭
链接: https://blog.csdn.net/qq_47281915/article/details/121024427
这篇关于【STM32】HAL库LED点灯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!