#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);
- }