1.建立工程文件
2.编写led初始化头文件
#ifndef __LED_H
#define __LED_H
#include "sys.h"
#define LED_0 PFout(9) //后期通过LED_0直接进行位操作
#define LED_1 PFout(10)
void LED_Init(void);
#endif
3.编写led.c初始化函数
#include "led.h"
#include "stm32f4xx.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义一个结构体
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE); //使能GPIOF时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10; //LED0和LED1对应IO口
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //普通输出模式
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽输出
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置输出速率
GPIO_Init(GPIOF,&GPIO_InitStructure); //初始化GPIOF9,F10
GPIO_SetBits(GPIOF,GPIO_Pin_9|10); //设定一个初始值
/*
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOF,&GPIO_InitStructure);
GPIO_SetBits(GPIOF,GPIO_Pin_9);
*/
}
4.编写main函数实现功能
#include "stm32f4xx.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
int main(void)
{
delay_init(168);
LED_Init();
while(1)
{
LED_0 = 1; //最终被映射为一个32位地址
LED_1 = 0;
delay_ms(500);
LED_0 = 0;
LED_1 = 1;
delay_ms(500);
}
}
注意:学会查看sys.h中的函数声名和定义
|