硬件设计
这些 LED 灯的阴极都是连接到 STM32 的 GPIO 引脚,只要我们控制 GPIO 引脚的电平输出状态,即可控制 LED 灯的亮灭。
软件设计
我们把 LED 灯控制相关的代码独立分开存储,方便以后移植。
在“工程模板”之上新建“ led.c”及“ led.h”文件,这些文件也可根据您的喜好命名。
- 使能 GPIO 端口时钟;
- 初始化 GPIO 目标引脚为推挽输出模式;
- 编写简单测试程序,控制 GPIO 引脚输出高、低电平。
led.h
#ifndef __LED_H__
#define __LED_H__
#include "stm32f10x.h"
#define LED_Pin GPIO_Pin_0
#define LED_Port GPIOB
#define LED_CLK RCC_APB2Periph_GPIOB
void LED_GPIO_Config(void);
#endif
led.c
#include "led.h"
void LED_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd(LED_CLK,ENABLE);
GPIO_InitStruct.GPIO_Pin =LED_Pin;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED_Port,&GPIO_InitStruct);
}
main.c
#include "stm32f10x.h"
#include "led.h"
int main(void)
{
LED_GPIO_Config();
while(1)
{
GPIO_ResetBits(GPIOC, LED_Pin);
}
}