STMCU小助手
发布时间:2023-2-3 22:13
|
STM32CubeMX+Keil5按键操控LED,使用的是STM32F103ZET6 首先按键本身性质需要处理,按键按下会有信号抖动,前沿抖动和后沿抖动,一般前后沿抖动都为5-10ms,如果不消除抖动,进行处理时会出现一次按键被识别成多次 其实电路里面就可以直接硬件消抖,硬件消抖是利用RC低通滤波滤掉,额,应该是用电容,效果好不好我也不知道,好像说效果不一定好,电容的选择也有影响,而且能应用的地方有限,最重要的问题是我这个板子上没有,所以选择软件解决 因为用按键控制LED,所以先看原理图确定引脚 LED引脚,由图可得LED0和LED1为可控LED,分别接着PB5和PE5,接地那个灯是电源灯,接电源即亮
按键(KEY)引脚,第一个按键(KEY_UP)连接的引脚WK_UP为PA0有唤醒功能,即可以把MCU从睡眠或低功耗模式中唤醒为正常模式,简单介绍一下,WK_UP给一个上升沿即可唤醒,在实际操作上即为按一下KEY_UP按键,至于怎么进入睡眠模式和其他更详细的,先不管,以后再说,说这么多的意思是,虽然可以用KEY_UP按键,但是我还是不用了 所以就用KEY0,KEY1,KEY2三个按键,分别连接的是PE4,PE3,PE2 很明显就和我一开始说的,根据原理图,这三个按键是直接接地,没有连接电容之类的可以硬件消抖,所以要从软件入手
打开STM32CubeMX进行引脚设置,先打开时钟
选择debug方式,如果是使用板子的不要选择No Debug
设置LED的引脚PB5和PE5,设置为输出,为使LED不会接电就亮,初始电平为高
设置按键引脚PE4,PE3,PE2,设置为输入,因为按键另一边接地,所以按下按键就为低电平,所以内部上拉,设置为高电平,反之,如果按键接高电平的话,内部需要设置下拉,设置为低电平
判断一次按键电平然后延时一小会再判断一次,实现消除前沿抖动,选择导出
选择HAL库
导出然后打开,写入,实现的功能是按KEY0改变LED0亮灭,按KEY1改变LED1亮灭,按KEY2同时改变LED0和LED1亮灭
然后实现出来是这样
———————————————— 版权声明:试图摸大鱼 |
【STM32U3评测】使用INS5699 RTC模组
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
CubeMX生成CubeIDE工程代码乱码
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
【STM32U3评测】低功耗模式功耗测量
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
【STM32U3评测】并不优雅的点亮WS2812
微信公众号
手机版