婚纱摄影网站大全,大连装修公司排名前十口碑推荐,如何自己开发一款游戏,社区教育网站建设方案文章目录 前言一、STM32按键的原理二、STM32Cubemx创建工程三、proteus仿真电路图四、程序代码编写4.1函数介绍4.2使用按键点亮LED灯 总结 前言
本篇文章开始带大家学习如何使用proteus和STM32Cubemx来完成STM32的学习#xff0c;第二节课我们先来学习按键的用法。
proteus使… 文章目录 前言一、STM32按键的原理二、STM32Cubemx创建工程三、proteus仿真电路图四、程序代码编写4.1函数介绍4.2使用按键点亮LED灯 总结 前言
本篇文章开始带大家学习如何使用proteus和STM32Cubemx来完成STM32的学习第二节课我们先来学习按键的用法。
proteus使用8.9版本。
STM32Cubemx使用6.3版本。
一、STM32按键的原理
GPIO引脚配置为输入模式
首先需要将STM32的某个GPIO引脚配置为输入模式以便读取按键的状态。通常情况下按键有两种连接方式
上拉电阻连接方式按键一端接地另一端接GPIO引脚同时GPIO引脚内部启用上拉电阻。当按键未按下时GPIO引脚为高电平按键按下时GPIO引脚为低电平。
下拉电阻连接方式按键一端接电源如3.3V另一端接GPIO引脚同时GPIO引脚内部启用下拉电阻。当按键未按下时GPIO引脚为低电平按键按下时GPIO引脚为高电平。
二、STM32Cubemx创建工程
在这里的话我们可以把之前的工程复制过来就行了在原来的基础上我们对他进行修改即可。 选择一个引脚作为输入引脚 三、proteus仿真电路图
找到按键 放置按键
这里需要注意按键的使用的时候需要加上上拉或者是下拉电阻防止按键处于悬空状态。
在这个电路图中当按下按键时PC6接地表现出低电平当松开按键时PC6通过上拉电阻连接到了电源所以此时按键表现为高电平。
四、程序代码编写
4.1函数介绍
HAL_GPIO_ReadPin函数 HAL_GPIO_ReadPin函数用于读取指定GPIO引脚的电平状态。
函数原型
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
参数说明
GPIOx: 指定GPIO端口基地址具体可以是GPIOA, GPIOB, GPIOC等。 GPIO_Pin: 指定GPIO引脚使用宏定义如GPIO_PIN_0, GPIO_PIN_1等。
返回值
GPIO_PIN_RESET低电平 GPIO_PIN_SET高电平
4.2使用按键点亮LED灯 这里需要注意在使用按键的时候需要进行消抖处理
按键在机械结构上的设计导致了其在按下和释放时可能会产生抖动现象。抖动是指在按键触点闭合或断开时触点会在短时间内快速地多次接触和断开导致检测到的按键信号在短时间内出现多次高低电平的变化。消抖处理的主要原因包括以下几个方面
抖动的原因 机械结构的自然特性按键的触点在按下和释放的过程中并不是立即稳定在某个位置而是会发生短时间的颤动。 弹簧或金属片回弹按键内部的弹簧或金属片在按压和松开过程中会回弹这会导致触点短时间内多次接触和断开。抖动的影响 多次检测按键按下如果不进行消抖处理当按键按下一次时系统可能会检测到多次按下信号导致按键事件被误认为是多次按下。 误触发抖动可能会导致不正确的按键事件触发比如在抖动期间误认为按键已经松开。 系统稳定性频繁的抖动信号会增加系统的处理负担影响系统的稳定性和可靠性。消抖处理的方法 消抖处理的方法主要有硬件消抖和软件消抖。
3.1 硬件消抖 硬件消抖是通过硬件电路来过滤掉按键抖动信号常用的方法包括
电容消抖在按键电路中并联一个电容利用电容的充放电特性来平滑按键信号。 施密特触发器使用施密特触发器电路将抖动信号转换为稳定的高低电平信号。
3.2 软件消抖 软件消抖是通过编程手段在软件层面过滤掉按键抖动信号常用的方法包括
延时法检测到按键状态变化后延时一段时间如10ms再次检测按键状态如果状态没有变化则认为按键状态有效。 计数法连续多次读取按键状态只有在连续多次读取到相同状态时才认为按键状态有效。 状态机法使用状态机来管理按键状态的变化只有在状态稳定时才进行按键处理。
总结
本篇文章就讲解到这里大家有什么疑问都可以留言。
本篇文章代码和工程将放在微信公众号中。
回复 STM32仿真按键即可领取源码和工程。