#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_Hvoid 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、初始化IOGPIO_Init(GPIOF,&GPIO_InitStruct);//3、关闭LEDGPIO_SetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);
}