学习完标准库后,现在再来学习HAL库要容易一点,虽然HAL库有些不明白的地方,但是自己还是能够看得懂这些函数都是用来干嘛的,目前阶段还是在学习如何使用,比如如何点亮一个灯,至于底层的东西,不是特别明白,比如如何操作寄存器这里,确实不是特别明白,但是在标准库与HAL库中我是能够明白如何使用的。后期自己会慢慢把底层的东西再学习一下,现在主要还是以如何实际操作起来为目标。
说了那么多,现在来开始点亮LED灯,这里只着重说明led.c以及led.h文件,主函数其实很简单,这里就不再多言。2024年4月2日21:47:06 现在每天都会更新HAL库的学习经历,感兴趣的朋友可以加群进行沟通。
2024年4月3日15:45:43 更新了代码,可读性与可移植性更高,并且添加了更加全面的注释,方便食用。
LED.H
#ifndef _LED_H
#define _LED_H
#include "./SYSTEM/sys/sys.h"
/******************************************************************************************/
/* 定义LED连接的GPIO端口, 用户只需要修改下面的代码即可改变控制的LED引脚 */
// R-红色
#define LED1_GPIO_PORT GPIOB /* GPIO端口 */
#define LED1_GPIO_PIN GPIO_PIN_5 /* 连接到红色LED灯的GPIO */
#define LED1_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOC_CLK_ENABLE(); }while(0) /* PB口时钟使能 */
// G-绿色
#define LED2_GPIO_PORT GPIOB /* GPIO端口 */
#define LED2_GPIO_PIN GPIO_PIN_0 /* 连接到绿色LED灯的GPIO */
#define LED2_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOC_CLK_ENABLE(); }while(0) /* PB口时钟使能 */
// B-蓝色
#define LED3_GPIO_PORT GPIOB /* GPIO端口 */
#define LED3_GPIO_PIN GPIO_PIN_1