1、按键key设置
通过GPIO外接按键的控制LED灯亮灭,GPIO 通常为高电平状态,当按键K2和K3按下时,PA0和PA1将分别被下拉为低电平状态,在设置主函数时应特别注意按键抖动的延时影响,常用的解决方法是延时20毫秒。本功能在上节程序的基础上添加key子项即可 。外界某一硬件,即对该口进行设置即可。
main.c
/** User/main.c */
#include "delay.h"
#include "key.h"
#include "led.h"
#include "stm32f10x.h"
#include "sys.h"
int main(void) {
u8 a;
RCC_Configuration(); // 时钟设置
LED_Init(); // 初始化 LED
KEY_Init(); // 初始化按键
while (1) {
/* 示例 1:无锁存 */
if (GPIO_ReadInputDataBit(KEYPORT, KEY1)) {
// 读按键接口的电平
GPIO_ResetBits(LEDPORT, LED1); // LED灯都为低电平(0)
} else {
GPIO_SetBits(LEDPORT, LED1); // LED灯都为高电平(1)
}
/* 示例 2:无锁存 */
GPIO_WriteBit(LEDPORT, LED1, (BitAction)(!GPIO_ReadInputDataBit(KEYPORT, KEY1)));
/* 示例 3:有锁存(较为常用) */
if (!GPIO_ReadInputDataBit(KEYPORT, KEY1)) {
// 读取按键对应 GPIO 引脚的电平状态
delay_ms(20