1、本例程中独立按键硬件采用消抖功能,具体按键并联电容,电容充放电的时候会滤波。
2、灯的代码和上节学习笔记8类似,故本次只贴key按键的代码。
#ifndef __KEY_H__
#define __KEY_H__
#include "stm32f10x.h"
#define KEY_1 GPIO_Pin_0
#define KEY_2 GPIO_Pin_13
#define KEY1_GPIO_PORT GPIOA//端口A
#define KEY2_GPIO_PORT GPIOC//端口C
#define KEY1_GPIO_CLK RCC_APB2Periph_GPIOA
#define KEY2_GPIO_CLK RCC_APB2Periph_GPIOC
#define KEY_ON 1
#define KEY_OFF 0
extern void key_config(uint8_t key_1,uint8_t key_2);
#endif // !__KEY_H__
#include "stm32f10x.h"
#include "led.h"
#include "key.h"
void delay(uint32_t x);
int main(void)
{
key_config( 1, 1);//独立按键初始化配置
LED_config( 1,1,1);//led灯初始化配置
while(1)
{
if(GPIO_ReadInputDataBit(KEY1_GPIO_PORT, KEY_1 )==KEY_ON)
{
LED_R(LED_OFF);
}
else
{
LED_R(LED_ON);
}
if(GPIO_ReadInputDataBit(KEY2_GPIO_PORT, KEY_2 )==KEY_ON)
{
LED_B(LED_OFF);
}
else
{
LED_B(LED_ON);
}
}
}
void delay(uint32_t x)
{
uint32_t y;
for(;x>0;x--)
for(y=1000;y>0;y--);
}