用库函数来点亮一个LED(STM32F407ZGT6)

如何点亮一个LED:
根据上一次的之后,在API里创建一个led.c文件和一个led.h文件,然后我们在led.h里添加如下代码:

#ifndef _led_H

#define _led_H

#include “stm32f4xx.h”
//添加stm32f4的官方头文件

#endif
再led.c中,添加#include “led.h”,然后我们需要对LED进行初始化,初始化的函数也在这里:
void LED_Init()
{
GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE); //使能端口C时钟

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; //设置为输出模式
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_2;//管脚设置C3
          // (因为我用的是核心板,所以我直接用PC3在外部用了一个海绵板,没有使用板子的LED1)
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;//速度为100M
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;//推挽输出
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;//上拉
GPIO_Init(GPIOC,&GPIO_InitStructure); //初始化结构体
GPIO_ResetBits(GPIOC,GPIO_Pin_3);
            GPIO_SetBits(GPIOC,GPIO_Pin_2);

}
要注意在led.h中对这个函数进行声明。
(当PC3为低电平时LED灯点亮,PC3为高电平时LED灯熄灭)以下是LED原理图:
tu8

在main.c中添加main.h 和led.h两个头文件
然后main函数对管脚进行使能
int main()
{
LED_Init();
while(1)
{int i=1000000;
while(i–);
//GPIO_ResetBits(GPIOC,GPIO_Pin_3);//复位C3 点亮D1
GPIO_ToggleBits(GPIOC,GPIO_Pin_3);
i=1000000;
while(i–);
// GPIO_ResetBits(GPIOC,GPIO_Pin_2);//复位C2
//(set是设置为1,reset就是设置为0.)
GPIO_ToggleBits(GPIOC,GPIO_Pin_2);
// 因为C2设置的是GPIO_SetBits(GPIOC,GPIO_Pin_2)所以会有闪烁效果
}
}

要注意在main.h添加led.h头文件
最后是我完成后的效果:
tu7