目标:使用库函数一个LED闪烁
main.c
#include "stm32f10x.h"
#include "led.h"
typedef unsigned int uint;
void delay(uint i)
{
while(i--);
}
int main()
{
LED_INIT(); //初始化LED
while(1)
{
GPIO_ResetBits(GPIO_PORT, GPIO_Pin_0); //点亮LED0
delay(0xffff);
GPIO_SetBits(GPIO_PORT,GPIO_Pin_0); //关闭LED0
delay(0xffff);
}
}
led.c
#include "led.h"
void LED_INIT(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义初始化变量
RCC_APB2PeriphClockCmd(GPIO_PORT_RCC, ENABLE); //开启GPIOC的时钟
GPIO_InitStructure.GPIO_Pin = GPIO_PIN; //选择引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //配置模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //配置速度
GPIO_Init(GPIOC , &GPIO_InitStructure); //引脚初始化
GPIO_SetBits(GPIO_PORT,GPIO_PIN); //设置所有LED熄灭
}
led.h
#ifndef _led_H
#define _led_H
#include "stm32f10x.h"
/*定义宏方便移植*/
#define GPIO_PORT_RCC RCC_APB2Periph_GPIOC
#define GPIO_PIN GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8
#define GPIO_PORT GPIOC
/*函数*/
void LED_INIT(void);
#endif
网友评论