你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32学习笔记四

[复制链接]
STMCU小助手 发布时间:2021-3-10 13:59
STM32学习笔记四
* n; O: X+ R" p& \* l
今天主要实验是按键输入实验,在此实验之前先大概的说一下蜂鸣器的控制,上一次笔记中我们学习了一个LED灯的点亮实验,其实蜂鸣器的控制实验与LED灯的点亮几乎是一样的,只不过蜂鸣器所对应的一个GPIO的引脚不同而已,所以我们需要查找原理图,找到蜂鸣器所对应的GPIO引脚:
6 M" W0 o5 B  f. _+ T
8.1.jpg

0 ]$ b0 V3 f! ^1 f
这里需要注意的一点是蜂鸣器是连接的一个P-MOS,所以我们将对应的引脚置1,P–MOS才导通,蜂鸣器才会响,而LED是对应的引脚置0才亮。
接下来说一下今天的按键输入实验,按键输入实验其实是对应的我们GPIO的另一种模式,即输入模式。前面说的LED灯、蜂鸣器等都是GPIO的输出模式,所以,今天的内容也比较简单,只需要将之前设置的输出模式配置成输入模式即可。STM32F407有4个key按键和一个复位按键,通过查看原理图:

% Z  G8 B" w' r6 V
8.2.jpg
& l, _) c1 q! n! y% q/ W) I' A( E; U
我们可以找到四个按键分别对应的一个GPIO引脚,然后我们也像上次LED实验一样,通过配置对应的GPIO来进行按键输入实验。同样,我们在HAREWARE文件夹下添加相应的key.c和key.h文件

( n. F2 x/ r0 u4 X
8.3.jpg

3 R9 d; o2 K, o
之前做LED灯点亮实验时我们使用的是GPIO的输出模式,使用的函数是GPIO_SetBits()和GPIO_ResetBits()两个函数来控制引脚输出,这次的输入模式我们将使用GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)这个函数来读取相应的引脚状态,第一个参数为对应的GPIO,第二个参数为对应GPIO引脚。大家只要去读取引脚状态就可以通过按键来点亮LED或者控制蜂鸣器响等不同的操作,这里主函数可以由大家自主发挥。这里也可以给一个参考示例给大家,只不过我这里为了方便都是使用的宏定义,然后我也将宏定义部分放在下面,供大家参考:
1 B; C  u3 u5 q, D5 S4 e
8.4.jpg
8.5.jpg
8.6.jpg

6 ^/ Z+ i1 z! r( M' g
今天的笔记差不多就这些了,然后通过这一节大家可能会发现可能有时候按键会出现无法点亮或者亮多次的现象,其实主要是我们按键需要做消抖处理,原理其实就是在按键按下去的时候做一个延迟判断,是否确实是按键按下去了,大家有兴趣的可以上网查一下如何实现按键消抖。
$ L' l! T6 d, m
拓展一下:我们主要学习了2个实验,大家就是觉得简单的可以再进行一下拓展,想一下如何实现类似手机的呼吸灯原理以及实现按键的长按和短按实现不同的功能,有兴趣的可以一起讨论,一起学习。
5 O5 D2 t( {) m. }8 P. H7 P
文章出处: STM32开发学习
: q0 l2 f1 S( p0 _0 W
收藏 1 评论0 发布时间:2021-3-10 13:59

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版