蓝桥杯——按键

ops/2025/2/26 23:46:57/

一:按键得原理图

二:按键的代码配置

step1  按键原理图对应引脚配置为输入状态

step2  在GPIO中将对应引脚设置为上拉模式

step3  在fun.c中写按键扫描函数

写完后的扫描函数需放在主函数中不断扫描

扫描函数主要通过两个定义变量的值来判断,一个当前状态变量state读取对应按键引脚的gpio值,一个last_state 变量在判断条件结束后赋予当前state的值,state重新获取gpio值如此循环

三:长按键和短按键

1.基础依据

定时器开始时cnt就会从0开始一直加,直到cnt=arr+1时产生定时器中断,cnt=0又开始加一直反复

我们需要计算cnt每次加一所需要的时间t0是多少,t0根据公式推导,t0=(psc+1)/f(f为系统频率为8000),

此外还可以通过cnt来求cnt为某值(如cnt=10000)所需要的时间t,如此得到长按键的思路,按键按下时令cnt=0;用if语句判断cnt是否大于1000(即按键是否按下超过一秒钟),如果是长按键则在if语句中些需要进行的操作

2.长按键配置

step1.另外配置一个定时器(TIM3,钟源选内部时钟,配置psc值)

注意定时器中断不用打开,直接生成代码

step2.按照基础依据写代码,设置为1,因为初始化时默认为0,不设为1就会直接一开始时就认为按键B1按下松开count+=2;

注意:定时器配置时有中断要使能,没有中断也要使能,有IT说明与中断有关,即有中断的TIM用带IT的函数语句使能,没有中断的TIM用没有IT的使能

我们上述配置时为按键长按一秒的配置,如果想改长按时间不需重新配置,只要改代码的cnt比较值就好


http://www.ppmy.cn/ops/161531.html

相关文章

Vscode编辑器获取更新远程最新分支

解决:打开当前项目的终端,输入 git remote update origin --prune # 查看远程分支 git branch -r --prune --prune 参数告诉 Git 清理那些远程仓库中已经删除但本地仍然存在的跟踪分支。 命令作用 更新远程仓库引用: git remote update …

互联网医院系统源码解析:如何开发智能化的电子处方小程序?

今天,我将从互联网医院系统源码的角度,解析如何开发一款智能化的电子处方小程序,帮助开发者更好地把握这一领域的技术趋势与开发实践。 一、电子处方小程序的背景与发展趋势 电子处方作为一种数字化医疗文档,广泛应用于互联网医…

安全见闻4

今天学了Windows操作系统和驱动程序的相关知识 Windows注册表 注册表是windows系统中具有层次结构的核心数据库 储存的数据对windows 和Windows上运行的应用程序和服务至关重要。注册表时帮助windows控制硬件、软件、用户环境和windows界面的一套数据文件。 打开注册表编辑器…

去中心化 AI:赋权还是混乱?

DeepSeek 如何在 AI 去中心化方面迈出了巨大的一步,以及为什么这比你想象的更重要 Nadia Piet AIxDESIGN & Archival Images of AI / Better Images of AI / AI Am Over It / CC-BY 4.0 2025 年 1 月 27 日星期一,DeepSeek —— 一家几乎凭空冒出来…

AI赋能的未来城市:如何用智能化提升生活质量?

这会是我们憧憬的未来城市吗? 随着技术的不断进步和城市化进程的加速,现代城市面临着诸多挑战——交通拥堵、环境污染、能源消耗、人口老龄化等问题愈发突出。为了应对这些挑战,建设智慧城市已成为全球发展的重要趋势。在这一进程中&#xf…

如何在 Ubuntu 上安装和使用 Podman ?

Podman 是一个容器管理工具,提供与 Docker 类似的功能,但被设计成无守护进程和脱离 root 权限。这意味着您不需要长时间运行的后台服务 (守护进程) 来管理您的容器,并且您不需要 root 权限来进行大多数操作。 在 Ubuntu 上安装 Podman 1. U…

详解golang的Gengine规则引擎

一:简介 Gengine是一款基于golang和AST(抽象语法树)开发的规则引擎, Gengine支持的语法是一种自定义的DSL, Gengine通过内置的解释器对规则文件进行解析,构建规则模型,进行相应的规则计算和数据处理。Gengine于2020年7月由哔哩哔哩(bilibili.com)授权开源。Gengine现已应用…

[特殊字符]《封印adb的黑暗通道:让系统文件成为魔法禁书区的终极指南》[特殊字符]

第一章:当adb变成泄密特洛伊木马 "曾经,adb是程序员的阿拉丁神灯,如今却成了产品经理的噩梦!" —— 某秃头CTO的血泪控诉 某日,产品经理惊恐发现:自家黑科技APP竟被竞争对手用adb pull轻松窃取…