实验1 跑马灯实验

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里面去,虽然我也不知道为什么,但是如果全部写在主函数中会报错!!!

原文地址:https://www.cnblogs.com/mudrobot/p/14313564.html