STM32 使用库函数(按键控制led不同的闪烁效果)
下面是main.c
#include "stm32f10x.h"
#include "led.h"`
#include "key.h"
int main(void)
{
while(1)
{
if(!GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3))
{
GPIO_WriteBit(GPIOE,GPIO_Pin_5,(BitAction)(1));
}
else
{
GPIO_WriteBit(GPIOE,GPIO_Pin_5,(BitAction)(0));
}
}
}
led.c
#include "led.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//构造结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//使能其所在时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//定义IO端口
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//定义IO端口输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//定义IO端口输出速度
GPIO_Init(GPIOE, &GPIO_InitStructure);//写入其中
}
led.h
#ifndef _led_H
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
void LED_Init(void);
#endif
key.c
#include "key.h"
void KEY_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //构造结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//使能其所在时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//定义IO端口
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//上拉输入
GPIO_Init(GPIOE,&GPIO_InitStructure);
}
key.h
#ifndef _led_H
#define _led_H
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
void KEY_Init(void);
#define KEYPORT GPIOE
#define KEY1 GPIO_Pin_3
#endif