STM32——板级支持包构建,代码编写过程分析(LED灯为例)

本文详细介绍了如何为STM32开发板构建板级支持包(BSP),以实现LED灯的初始化、点亮、熄灭和状态翻转。内容涵盖从创建用户文件夹、编写bsp_led.c和bsp_led.h文件,到配置GPIO初始化结构体、使用HAL库函数控制LED状态的过程。示例中涉及的GPIO引脚包括PB0、PB1和PB5。

板级支持包(BSP)是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统的一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好地运行于硬件主板

以按键点亮LED为例,可以理解为板极支持包为底层驱动(HAL)库提供可以访问硬件的接口,同时,当再用户应用层编写应用程序实现按下按键点亮LED时,要通过板级支持包知道板子上的硬件有那些功能可以实现,比如不需要了解GPIO的结构,只要知道调用某个方法可以实现某个功能就行

构建开发板上的LED的灯板级支持包

以CubeMX创建的项目为例

首先创建一个user文件夹,创建2个文件

 

以上步骤准备好,既可以开始构建板级支持包

要实现的功能:初始化GPIO,点亮,熄灭,翻转LED灯的状态,LED绿灯用到PB0,蓝灯用PB1,红灯用PB5. 编写代码主要涉及两个文件,主程序bsp_led.c,用来使能和初始化GPIO,配置引脚输出模式,bsp_led.h用于具体分配引脚的功能,最后在main.c文件中写入预期实现的功能并执行代码

一.bsp_led.c文件代码编写过程

1.添加头文件路径,确保右键可以正常跳转

//添加头文件路径
#include "./led/bsp_led.h"

2.初始化GPIO

//初始化GPIO
void LED_GPIO_Init(void)
{
	
}

2.1首先要使能GPIO,去stm32f1xx_hal_gpio.c文件查看使能方法

如图,使能GPIO要用到_HAL_RCC_GPIOx_CLK_ENABLE(),

//添加头文件路径
#include "./led/bsp_led.h"

//初始化GPIO
void LED_GPIO_Init(void)
{
	  __HAL_RCC_GPIOB_CLK_ENABLE();
	

}

使能之后,如果

3.配置引脚

(1)配置IO模式,要使用GPIO_InitTypeDef结构体,因此搜索GPIO_InitTypeDef查看这个结构体的用法,经过搜索,这些内容在stm32f1xx_hal_gpio.h文件中

(2)配置上拉,下拉等模式,要用到GPIO_InitTypeDef结构体,结构体内容如图所示

要实例化GPIO针脚,要查询GPIO_pins_define,以下查询了GPIO_pins_define,GPIO_mode_define,GPIO_pull_define,GPIO_SpeedDefine

 GPIO_pins_define

GPIO_mode_define

 GPIO_pull_define

 GPIO_speed_define

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值