key.h文件
#ifndef KEY_H
#define KEY_H
#include "stm32f10x.h"
#define KEY0 GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)
#define KEY3 GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_3)
#define KEY4 GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_4)
void key_init(void);
#endif
key.c文件
#include "key.h"
void key_init(void)
{
GPIO_InitTypeDef GPIO_InitStucture;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);
GPIO_InitStucture.GPIO_Pin = GPIO_Pin_3|4;
GPIO_InitStucture.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOE, &GPIO_InitStucture);
GPIO_InitStucture.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStucture.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(GPIOA, &GPIO_InitStucture);
}
main.c文件
#include "stm32f10x.h"
#include "led.h"
#include "beep.h"
#include "key.h"
void delay(u32 i){while(i--);}
int main(void)
{
led_init();
beep_init();
key_init();
while(1)
{
if(KEY0==1)
{
delay(5000);
if(KEY0==1)
{
beep();
}
}
if(KEY3==0)
{
delay(5000);
if(KEY3==0)
LED0(OFF);
}
if(KEY4==0)
{
delay(5000);
if(KEY4==0)
LED1(OFF);
}
}
}