#ifndef、#define、#endif格式条件编译,作用是避免头文件内容比重复定义
main.c
#include "stm32f4xx.h"
#include "led.h"
#include "delay.h"
//CPU主时钟168MHz
int main(void)
{
delay_init(168);
LED_Init();
while(1)
{
GPIO_SetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);
delay_ms(500);
GPIO_ResetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);
delay_ms(500);
}
}
led.h
#ifndef __LED_H
#define __LED_H
void LED_Init(void);
#endif
led.c
/*
跑马灯实验用到的IO口为PF9和PF10,低电平点亮
*/
#include "led.h"
#include "stm32f4xx.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_10;
GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
//1、使能时钟
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);
//2、初始化IO
GPIO_Init(GPIOF,&GPIO_InitStruct);
//3、关闭LED
GPIO_SetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);
}