stm32安富莱BSP学习(LED驱动)

如果不想看的可以直接使用git把我的代码下载出来,里面工程挺全的,后期会慢慢的补注释之类的

stm32学习笔记: stm32学习笔记源码 (gitee.com)(出差是公司电脑改的代码,有锁所以不能上传,只能回去了拿自己电脑上传了)

如果不会使用git快速下载可以选择直接下载压缩包或者去看看git的使用

git的使用git的使用(下载及上传_gitcode怎么下载代码-CSDN博客

有错误的地方欢迎大家多多指出,方便我修改错误,以及提升自己

目录

1 确定自己板子的硬件连接

2  宏定义

3 GPIO初始化

4 LED控制函数

4.1 LED开启函数

4.2 LED关闭函数

4.3  LED翻转函数

4.4 判断是否有输出

本系列主要为了学习安富莱源码的规范写法以及思想。

1 确定自己板子的硬件连接

我的板子硬件如下:为低电平导通,硬件连接为PB5 PB0 PB1

2  宏定义

附上安富莱的宏定义:写在bsp_led.c 里面的我个人还是喜欢宏定义和结构图在h文件,我给移到H文件去了,

这里改成了我自己的硬件GPIOB的时钟通道,以及引脚更改。

/*
	该程序适用于安富莱STM32-V4 开发板

	如果用于其它硬件,请修改GPIO定义
	
	如果用户的LED指示灯个数小于4个,可以将多余的LED全部定义为和第1个LED一样,并不影响程序功能
*/
/* 按键口对应的RCC时钟 */
#define RCC_ALL_LED 	(RCC_APB2Periph_GPIOB)

#define GPIO_PORT_LED1  GPIOB
#define GPIO_PIN_LED1	GPIO_Pin_5

#define GPIO_PORT_LED2  GPIOB
#define GPIO_PIN_LED2	GPIO_Pin_0

#define GPIO_PORT_LED3  GPIOF
#define GPIO_PIN_LED3	GPIO_Pin_1

#define GPIO_PORT_LED4  GPIOB
#define GPIO_PIN_LED4	GPIO_Pin_5

3 GPIO初始化

/*
*********************************************************************************************************
*	函 数 名: bsp_InitLed
*	功能说明: 配置LED指示灯相关的GPIO,  该函数被 bsp_Init() 调用。
*	形    参:  无
*	返 回 值: 无
*********************************************************************************************************
*/
void bsp_InitLed(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;

	/* 打开GPIO时钟 */
	RCC_APB2PeriphClockCmd(RCC_ALL_LED, ENABLE);

	/*
		配置所有的LED指示灯GPIO为推挽输出模式
		由于将GPIO设置为输出时,GPIO输出寄存器的值缺省是0,因此会驱动LED点亮.
		这是我不希望的,因此在改变GPIO为输出前,先关闭
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值