库文件stm32f10x_gpio.c和stm32f10x_rcc.c,应添加到工程里。
这是 #include "led.h" 里面的内容,可以直接用LED0—LED15
#ifndef __LED_H
#define __LED_H
//CT117E LED
#define LED0 GPIO_Pin_8
#define LED1 GPIO_Pin_9
#define LED2 GPIO_Pin_10
#define LED3 GPIO_Pin_11
#define LED4 GPIO_Pin_12
#define LED5 GPIO_Pin_13
#define LED6 GPIO_Pin_14
#define LED7 GPIO_Pin_15
#define LEDALL GPIO_Pin_All
#endif
随后对LED 相关GPIO引脚工作模式及时钟进行配置,即LED的初始化,所以这个函数设为Led_Init()。
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//GPIO结构体复用定义
//使能GPIOC和GPIOD的外设时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = LED0 |LED1 | LED2 | LED3 | LED4 | LED5 | LED6 | LED7;//端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;//IO口速度配置
GPIO_Init(GPIOC, &GPIO_InitStructure);端口初始化
GPIO_SetBits(GPIOC,LED1);//初始化应设为输出高电平
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;//锁存引脚D2端口配置
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
1. 在配置STM32外设的时候,首先要使能其时钟。GPIO是挂载在APB2总线上的外设,在固件库中对挂载在APB2总线上的外设时钟使能通过RCC_APB2PeriphClockCmd()实现。
2.端口配置,用到结构体里的.GPIO_Pin这个类。
3.设置输出方式为推挽输出,GPIO_Mode = GPIO_Mode_Out_PP
4.设置IO速度
5.端口初始化
开灯LED1则
GPIO_SetBits(GPIOC,LED1);关掉
GPIO_ResetBits(GPIOC,LED1);