main.c
#include "stm32f4xx.h"
#include "delay.h"
#include "led.h"
int main(){
delay_init(168);
led_init();
//GPIO_SetBits(GPIOF,GPIO_Pin_10);
while(1){
GPIO_SetBits(GPIOF,GPIO_Pin_9);//high V
GPIO_ResetBits(GPIOF,GPIO_Pin_10);
delay_ms(500);
GPIO_ResetBits(GPIOF,GPIO_Pin_9);
GPIO_SetBits(GPIOF,GPIO_Pin_10);
delay_ms(500);
}
return 0;
}
led.c
#include "led.h"
#include "sys.h"
void led_init(){
GPIO_InitTypeDef GPIO_magic;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);
GPIO_magic.GPIO_Mode=GPIO_Mode_OUT;
GPIO_magic.GPIO_OType=GPIO_OType_PP;
GPIO_magic.GPIO_Pin=GPIO_Pin_9;
GPIO_magic.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_magic.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOF,&GPIO_magic);
GPIO_SetBits(GPIOF,GPIO_Pin_9);//high V
GPIO_magic.GPIO_Mode=GPIO_Mode_OUT;
GPIO_magic.GPIO_OType=GPIO_OType_PP;
GPIO_magic.GPIO_Pin=GPIO_Pin_10;
GPIO_magic.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_magic.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOF,&GPIO_magic);
GPIO_SetBits(GPIOF,GPIO_Pin_9);//high V
}
切记:一定要先使能时钟然后再初始化IO口,然后才能进行你想进行的操作。
初始化操作一定要写到HARDWARE里面去,虽然我也不知道为什么,但是如果全部写在主函数中会报错!!!