基于HAL库STM32F103ZET6之点亮LED

目录

一、确定点亮LED的有效电平

 二、配置CubeMX

三、编写LED相关程序

四、其它

——LED灯闪烁程序编写

工程文件下载路径:


一、确定点亮LED的有效电平

        根据开发板的原理图确定LED对应的GPIO口,并确定有效电平。如下图,可知两个LED的有效电平均为低电平,即单片机输出低电平点亮LED。并且红色LED和绿色LED分别接单片机的PB5和PE5引脚。

 二、配置CubeMX

        2-1、配置时钟源,高速时钟选择晶体谐振器(外部晶振),低速时钟暂不做设置默认即可。

       2-2、配置Debug(调试接口),选择SW,注:如果不配置Debug会造成程序下载一次后就烧不进去,如果因忘记配置无法烧录可在点击烧录时按一下复位(记得配置后再烧录,有时也会烧不进去,多试几次就行)

        2-3、配置时钟树,选择时钟源和设置时钟频率

         2-4、配置PB5和PE5均为推挽输出,初始电平均为高电平(熄灭LED)

        2-5、设置工程的保存路径及名称

三、编写LED相关程序

        3-1、编译程序,配置下载器,我用的是DAP_Link(st-link,jlink配置也几乎相同)

         3-2、编写点亮LED的程序,在主程序添加以下代码即可点亮LED

HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_RESET);  //输出低电平
HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET);  //输出低电平

        3-3、编译后,下载程序到单片机

现象如下: 

四、其它

——LED灯闪烁程序编写

        4-1、方法一:通过控制引脚交替输出高低电平来实现LED灯的闪烁

HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_RESET);	//输出低电平
HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET);	//输出低电平
HAL_Delay(500);												//延时500毫秒
HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_SET);	//输出高电平
HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET);	//输出高电平
HAL_Delay(500);												//延时500毫秒

        4-2、方法二:使用电平翻转函数对LED的引脚进行取反输出高低电平来实现LED灯的闪烁

HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);	//翻转电平
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);	//翻转电平
HAL_Delay(500);									//延时500毫秒

现象如下:

        4-3、两个LED交替闪烁,使用电平翻转函数对LED的引脚进行取反来实现LED灯的亮灭,由于两个LED的初始电平为高电平(熄灭),如果用电平翻转函数来实现就需要使其中一个LED为点亮状态,故在while前先电亮一个LED

HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);		//翻转电平,点亮一个LED

 现象如下:

工程文件下载路径:

百度网盘:

链接:https://pan.baidu.com/s/1lUUI5U_r2aLQIbRKKAaNqQ?pwd=FYXK 
提取码:FYXK 

后期会继续更新,敬请关注!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风影星空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值