#ESP32S3N8R8(按键点灯)

2024-04-27 03:04
文章标签 按键 点灯 esp32s3n8r8

本文主要是介绍#ESP32S3N8R8(按键点灯),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、按键对应端口为GPIO0(上拉)

二、代码

#include <stdio.h>
#include "driver/gpio.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "unistd.h"void app_main(void)
{int counter=0;//1.配置gpio输入(GPIO0)gpio_config_t gpio_init = {.pin_bit_mask = BIT(0),    //设置gpio0.mode = GPIO_MODE_INPUT,.pull_up_en = GPIO_PULLUP_ENABLE,     //使能上拉.pull_down_en = GPIO_PULLDOWN_DISABLE,.intr_type = GPIO_INTR_DISABLE};gpio_config(&gpio_init);//2.循环检测按键while(1){if(gpio_get_level(0)==0){//3.延时消抖vTaskDelay(20/portTICK_PERIOD_MS);  //延时20ms消抖if (gpio_get_level(0)==0){//4.计数counter++;}//5.打印计数printf("按下了按键计数: %d\n",counter);}//6.释放CPUvTaskDelay(10/portTICK_PERIOD_MS);       }}

 三、第六步

系统使用FreeRTOS,系统会调度,不能一直循环。vTaskDelay可以释放任务,让系统去执行其他任务(暂时没有其他任务)。这个是必须的,而且延时必须满足大于等于一个时间片。我们默认的任务频率为100HZ,即10ms,所以我们必须延时大于等于10ms(满足至少一个时间片的阻塞

可以在此处修改任务频率

这篇关于#ESP32S3N8R8(按键点灯)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939360

相关文章

独立按键单击检测(延时消抖+定时器扫描)

目录 独立按键简介 按键抖动 模块接线 延时消抖 Key.h Key.c 定时器扫描按键代码 Key.h Key.c main.c 思考  MultiButton按键驱动 独立按键简介 ​ 轻触按键相当于一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通与断开。  ​ 按键抖动 由于按键内部使用的是机

3.门锁_STM32_矩阵按键设备实现

概述 需求来源: 门锁肯定是要输入密码,这个门锁提供了两个输入密码的方式:一个是蓝牙输入,一个是按键输入。对于按键输入,采用矩阵按键来实现。矩阵按键是为了模拟触摸屏的按键输入,后续如果项目结束前还有时间就更新为触摸屏按键输入。 矩阵按键开发整体思路: 由于矩阵按键就是GPIO的控制,所以不进行芯片和设备的分层编写,控制写在同一个文件中,最终向应用层提供一个接口。 代码层级关系:

STM32F4按键状态机--单击、双击、长按

STM32F4按键状态机--单击、双击、长按 一、状态机的三要素二、使用状态机原因2.1资源占用方面2.2 执行效率方面:2.3 按键抖动方面: 三、状态机实现3.1 状态机分析3.1 程序实现 百度解析的状态机概念如下 状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。有限状态机简写为FSM(

JS触发按键事件

<script type="text/javascript" language=JavaScript charset="UTF-8">document.onkeydown=function(event){var e = event || window.event || arguments.callee.caller.arguments[0];if(e && e.keyCode==27){ // 按

学习记录-Qt按键单击后延迟一段时间触发下一个函数执行

<span style="font-family: Arial, Helvetica, sans-serif;">QTimer::singleShot(1000, this, SLOT(on_pushButton_pcba_readfilename_clicked()));</span>项目中,需要按键单击后发送一条指令,等待一段时间后在发另一条指令,看文档发现使用如上方式可以实现

linux--按键重映射问题

第一:按键重映射可以解决的问题是 ①键盘的某些按键不灵敏,需要把这个坏键重新映射到好的按键上。比如:如果Up按键不灵敏,把Esc按键重新映射成Up按键,这样就可以使用Esc按键代替Up按键。 ②经常使用的按键比较远,需要把常用的较远的按键重映射到距离手指比较近的地方,这样方便使用。 -------------------------------------------------

【GD32】---- 移植工程模板及点灯测试

1 新建模板文件夹 新建一个名叫03_GD32TemplateProject的文件夹,用于建造工程模板 2 移植官方库文件 在模板文件夹里新建5个文件夹,分别存放官方库文件和系统驱动文件 01_main 存放main函数 02_Startup 存放系统启动文件 03_System 存放官方的系统文件 04_Firmware_PeripheralDriver 存放官方

gt9xx系列------实现实体按键的unpin解锁

由于gt的虚拟按键的上报不是上报坐标而是类似电源按键的实体按键所以需要修改之前的unpin步骤 if ((( rawEvent->code==139)&&(rawEvent->value==1))||((rawEvent->code==158)&&(rawEvent->value==1)))  //有按键按下 { if( unpinkey[0]==0)     //第一次数组0肯定为空

嵌入式开发与应用按键外部中断实验二

一、实验目的 1. 通过实验掌握中断式键盘控制与设计方法; 2. 熟悉编写中断服务程序; 3. 掌握中断系统相关知识,掌握外部中断应用方法和处理过程; 4. 掌握实验处理器中断处理的软件编程方法; 5. 从按键程序的设计对系统的编程进行深入了解,与单片机裸机编程进行区分; 6. 掌握基于固件库编程控制GPIO端口的输出,进而控制LED灯的显示状态。 二、实验内容   根据实验要

Linux C程序输入backspace按键显示^H

Linux系统下用C语言写一个程序,需要用户输入指令,根据指令来选择不同的功能运行,当输入错误想要使用backspace按键删除时却出现**^H**字符,导致无法正常匹配输入指令,如下图: 可以通过一个简单的语句解决这个问题。 system("stty erase ^H"); 在程序运行初始化部分使用上面的语句,仅需使用一次,之后的程序运行都不会出现**^H**的现象了。