使用模板固件库点亮LED

本文介绍如何使用STM32固件库控制LED灯的点亮过程,包括配置GPIO引脚、创建初始化结构体、开启时钟及设置输出模式等步骤。通过详细示例,帮助读者理解并实现LED灯的点亮。

1.新建模板固件库以后,在E:\Keil5\project_\GPIO输出——使用固件库点亮LED\User文件夹中新建led文件夹,新建bsp_led.c和bsp_led.h文件。

2.bsp_led.h文件需要写一个条件编译

#ifndef _BSP_LED_H   
#define _BSP_LED_H
#endif /*bsp_led.h*/`

以保证编译器不出错不重复编译

3.在用库编程的时候GPIO引脚已经定义好,直接拿来用即可。
LED红灯对应的的是GPIO_Pin_10,将其在bsp_led.h文件中宏定义为LED_R_GPIO_PIN,绿灯,蓝灯同理。

//GPIOH定义为
LED_R_GPIO_PORT,
//端口时钟
RCC_AHB1Periph_GPIOH定义为LED_R_GPIO_CLK

这样编译的好处是提高了程序的可移植性,在其他开发平台上同样适用。

4.1 创建void LED_GPIO_Config(void)函数

4.2 定义结构初始化,需要放在大括号开头(编译从由上至下,否则会报错),

GPIO_InitTypeDef GPIO_InitStruct;

4.3 开启时钟

RCC_AHB1PeriphClockCmd(LED_R_GPIO_CLK,ENABLE);//开启时钟

4.4 确定引脚号

GPIO_InitStruct.GPIO_Pin = LED_R_GPIO_PIN;

4.5 //确定输入输出(这里点亮LED为输出,设置为推挽输出)

GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;

// 推挽输出

GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;

//上拉

 GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;

//配置速度为50MHz

GPIO_InitStruct.GPIO_Speed = GPIO_Fast_Speed;

4.5 传入一个结构体初始化指针

GPIO_Init(LED_R_GPIO_PORT,&GPIO_InitStruct);//&取地址符号

5.main函数的创建:

#include "bsp_led.h"//包含led头文件

调用ResetBits函数

GPIO_ResetBits(LED_R_GPIO_PORT,LED_R_GPIO_PIN);

点亮LED

需要注意的点:Keil5编译时,会找不到bsp_led.h文件需要在Include Path中添加User文件目录路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值