如果不想看的可以直接使用git把我的代码下载出来,里面工程挺全的,后期会慢慢的补注释之类的
stm32学习笔记: stm32学习笔记源码 (gitee.com)(出差是公司电脑改的代码,有锁所以不能上传,只能回去了拿自己电脑上传了)
如果不会使用git快速下载可以选择直接下载压缩包或者去看看git的使用
git的使用git的使用(下载及上传_gitcode怎么下载代码-CSDN博客
有错误的地方欢迎大家多多指出,方便我修改错误,以及提升自己
目录
本系列主要为了学习安富莱源码的规范写法以及思想。
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为输出前,先关闭