【STM32+HAL+Proteus】系列学习教程4---GPIO输入模式(独立按键)

实现目标

1、掌握GPIO 输入模式控制

2、学会STM32CubeMX配置GPIO的输入模式

3、具体目标:1、按键K1按下,LED1点亮;2、按键K2按下,LED1熄灭;2、按键K3按下,LED2状态取反;


一、STM32 GPIO 输入模式

1、按键模式选择

STM32的GPIO共有8种工作模式

  • 输入模式:模拟输入、上拉输入、下拉输入和浮空输入;
  • 输出模式:推挽输出、开漏输出、推挽复用输出和开漏复用输出。
  • 按键检测时,一般将GPIO设置为输入模式

2、按键消抖

按下按键和松开按键的瞬间都是存在机械抖动的。这种抖动可分为前抖动(按下瞬间带来的抖动),后抖动(松开瞬间带来的抖动),如下图所示。无论是前抖动还是后抖动,持续时间大约是5~10ms。

单片机检测按键时会出现误以为按键多次按下的情况:

当按下一次按键,可能在A点检测到一次低电平,在B点检测到一次高电平,在C点又检测到一次低电平。同时抖动是随机,不可测的。那么按下一次按键,抖动可能会误以为按下多次按键。

因此我们可以通过软件延时来进行消抖。

二、原理图设计

说明:1、开发板上有三个按键,每个按键都设计得有上拉电阻,++当按键按下时,对应单片机检测管脚电平为低电平++,当没有按键按下,对应的管脚默认为高电平。

三、STM32CubeMX 配置

1.按键GPIO模式设置

配置:1、3个按键设置为输入模式GPIO_Input ,并分别取名为LED1,LED2,LED3,LED4;2、4个LED设置为输出模式Output Push Pull .并分别取名为S1,S2,S3 .

四、程序设计

1、在 while(1)中编写代码

cpp 复制代码
		if (HAL_GPIO_ReadPin(GPIOB, S1_Pin) == 0)//按键K1按下
		{
			  HAL_Delay(20);//延时消抖
				if (HAL_GPIO_ReadPin(GPIOB, S1_Pin) == 0)
				{
						HAL_GPIO_WritePin(GPIOB, LED1_Pin, GPIO_PIN_RESET);//LED1点亮
				
				}
		}
		if (HAL_GPIO_ReadPin(GPIOB, S2_Pin) == 0)//按键K2按下
		{
			  HAL_Delay(20);//延时消抖
				if (HAL_GPIO_ReadPin(GPIOB, S2_Pin) == 0)
				{
						HAL_GPIO_WritePin(GPIOB, LED1_Pin, GPIO_PIN_SET);//LED1熄灭
				
				}
		}		
		if (HAL_GPIO_ReadPin(GPIOB, S3_Pin) == 0)//按键K3按下
		{
			  HAL_Delay(20);//延时消抖
				if (HAL_GPIO_ReadPin(GPIOB, S3_Pin) == 0)
				{
						HAL_GPIO_TogglePin(GPIOB, LED2_Pin);//LED2状态取反
				
				}
		}

五、实验现象

六、仿真实现


总结

相关推荐
深圳市九鼎创展科技2 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
辰哥单片机设计2 小时前
STM32项目分享:车辆防盗报警系统
stm32·单片机·嵌入式硬件
風清掦3 小时前
【江科大STM32学习笔记-05】EXTI外部中断11
笔记·stm32·学习
小龙报3 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
范纹杉想快点毕业3 小时前
嵌入式与单片机开发核心学习指南——从思维转变到第一性原理的深度实践
单片机·嵌入式硬件
Industio_触觉智能3 小时前
瑞芯微RK3566开发板规格书,详细参数配置,型号EVB3566-V1,基于RK3566核心板SOM3566邮票孔封装
嵌入式硬件·开发板·rk3568·rk3566·核心板·瑞芯微
czwxkn4 小时前
4STM32(stdl)TIM定时器
stm32·单片机·嵌入式硬件
Love Song残响4 小时前
NVIDIA显卡终极优化指南
stm32·单片机·嵌入式硬件
qq_672592754 小时前
电源芯片为什么发热
单片机·嵌入式硬件
天天爱吃肉82184 小时前
【跨界封神|周杰伦×王传福(陶晶莹主持):音乐创作与新能源NVH测试,底层逻辑竟完全同源!(新人必看入行指南)】
python·嵌入式硬件·算法·汽车