该博客记录按键的配置和简单的使用,并没有添加软件消抖和长按功能的实现。这些功能将在下一篇博客写到。
目录
一、按键配置
- 查看蓝桥杯嵌入式STM32G431的电路手册,PB0-PB3和PA0分别接到按键一侧,并且通过10K电阻上拉,当按键按下的时候引脚为低电平。
- 将STM32CubeMX像上一篇博客那样配置好,一定要设置输入晶振为24M,并且工程要保存在纯英文路径下。这里不再重复。
- 选择PB0-PB3和PA0配置为输入模式。
- 在GPIO中配置PB0-PB3和PA0(可以按住Ctrl键实现连续选择),可以设置为浮空输入模式,如下图所示
- 点击GENRATE CODE创建工程。keil的设置与上一篇博客相同这里不再重复。
二、代码编写
- 编写按键判断函数
unsigned char Key_Read(void) { unsigned char key_num=0; if(!HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)) { key_num=1; } if(!HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)) { key_num=2; } if(!HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)) { key_num=3; } if(!HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)) { key_num=4; } return key_num; }
- 测试代码,这里使用了上一篇博客写的LED用于演示按键的当前状态
/* Infinite loop */ /* USER CODE BEGIN WHILE */ LED_Init(); while (1) { LED(Key_Read()); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ }
到此按键简单的使用完成。