上篇文章记录了寄存器位操作电灯方式,这篇记录下固件库模板点灯,提高程序的可观性。
固件库模板下载
点我下载
提取码: vq2u
创建bsp_led.c bsp_led.h文件,并添加至工程
下载好模板后在user文件夹中创建led文件夹,然后在里面创建bep_led.c bsp_led.h 文件。如下图:
打开工程,双击USER将bsp_led.c添加至工程中
编写代码
bsp_led.c使能GPIOC的时钟
RCC_APB2PeriphClockCmd( LED_D2_GPIO_LCK, ENABLE);
实例化GPIO_InitTypeDef结构体
PIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = LED_D2_GPIO_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStruct);
bsp_led.h宏定义以及函数的声明
#ifndef _BSP_LED_H
#define _BSP_LED_H
#include "stm32f10x.h"
#define LED_D2_GPIO_PIN GPIO_Pin_13
#define LED_D2_GPIO_PORT GPIOC
#define LED_D2_GPIO_LCK RCC_APB2Periph_GPIOC
#define ON 1
#define OFF 0
#define LED_D2(a) if(a) \
GPIO_ResetBits( LED_D2_GPIO_PORT, LED_D2_GPIO_PIN);\
else GPIO_SetBits(LED_D2_GPIO_PORT, LED_D2_GPIO_PIN);
void LED_GPIO_Config(void);
main.c 函数调用、拉高拉低电平
LED_GPIO_Config();
GPIO_ResetBits( LED_D2_GPIO_PORT, LED_D2_GPIO_PIN); //拉低
GPIO_SetBits(LED_D2_GPIO_PORT, LED_D2_GPIO_PIN);//拉高