STMCU小助手
发布时间:2021-3-10 13:59
|
STM32学习笔记四 : E3 p+ [$ w6 w7 E0 _ 今天主要实验是按键输入实验,在此实验之前先大概的说一下蜂鸣器的控制,上一次笔记中我们学习了一个LED灯的点亮实验,其实蜂鸣器的控制实验与LED灯的点亮几乎是一样的,只不过蜂鸣器所对应的一个GPIO的引脚不同而已,所以我们需要查找原理图,找到蜂鸣器所对应的GPIO引脚:
这里需要注意的一点是蜂鸣器是连接的一个P-MOS,所以我们将对应的引脚置1,P–MOS才导通,蜂鸣器才会响,而LED是对应的引脚置0才亮。 接下来说一下今天的按键输入实验,按键输入实验其实是对应的我们GPIO的另一种模式,即输入模式。前面说的LED灯、蜂鸣器等都是GPIO的输出模式,所以,今天的内容也比较简单,只需要将之前设置的输出模式配置成输入模式即可。STM32F407有4个key按键和一个复位按键,通过查看原理图:
我们可以找到四个按键分别对应的一个GPIO引脚,然后我们也像上次LED实验一样,通过配置对应的GPIO来进行按键输入实验。同样,我们在HAREWARE文件夹下添加相应的key.c和key.h文件 . {; t0 g d5 Z% J" a, x: U8 D& g
之前做LED灯点亮实验时我们使用的是GPIO的输出模式,使用的函数是GPIO_SetBits()和GPIO_ResetBits()两个函数来控制引脚输出,这次的输入模式我们将使用GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)这个函数来读取相应的引脚状态,第一个参数为对应的GPIO,第二个参数为对应GPIO引脚。大家只要去读取引脚状态就可以通过按键来点亮LED或者控制蜂鸣器响等不同的操作,这里主函数可以由大家自主发挥。这里也可以给一个参考示例给大家,只不过我这里为了方便都是使用的宏定义,然后我也将宏定义部分放在下面,供大家参考: $ _& g- s( g8 u8 u
今天的笔记差不多就这些了,然后通过这一节大家可能会发现可能有时候按键会出现无法点亮或者亮多次的现象,其实主要是我们按键需要做消抖处理,原理其实就是在按键按下去的时候做一个延迟判断,是否确实是按键按下去了,大家有兴趣的可以上网查一下如何实现按键消抖。 ! g0 k1 K* f4 p, D' o t3 P 拓展一下:我们主要学习了2个实验,大家就是觉得简单的可以再进行一下拓展,想一下如何实现类似手机的呼吸灯原理以及实现按键的长按和短按实现不同的功能,有兴趣的可以一起讨论,一起学习。 文章出处: STM32开发学习 |
《STM32CubeMX2 实战课程》学习笔记5+CubeMX2生成的Uart初始化代码中没有使能
《STM32CubeMX2 实战课程》学习笔记4+FreeRTOS中的SysTick错误及改正
使用stm32C542做的低功耗密码锁示例
《STM32CubeMX2 实战课程》学习笔记1+由MX2生成MDK5项目并打开
《STM32CubeMX2 实战课程》学习笔记3.+sleep/stop/standby低功耗模式的入口
《STM32CubeMX2 实战课程》学习笔记2+MX2生成的MDK5工程中添加已存在文件(*.c / *.h)
【STM32MP257-DK】01开发板开箱、ST MPU 生态资源使用、环境搭建以及镜像更新
基于STM32在线升级OTA经验分享
【STM32C0测评】Nucleo-C092开发板驱动DS1302实验
Keil下的STM32N6之RAM运行工程配置说明
微信公众号
手机版