在ESP32-Arduino开发中添加其它Arduino库
目录
前言
原理说明
操作步骤
下载Bounce
安装Bounce
将下载的文件夹(压缩包需要解压)移动到components/arduino/libraries路径下,并重命名为Bounce2
查看添加库里所有的源文件位置
在arduino的CMakeList.txt里添加库源文件
使用Bounce
前言
乐鑫官方的esp-arduino把ESP32的大部分外设做了arduino驱动开发(仍在持续进行中),并且也提供了一部分有趣的应用库,但有时,还需要使用一些其它esp-arduino中未提供的arduino库,这种情况也是可以很容易搞定的
原理说明
将待添加的arduino库,添加到esp-arduino components中,这样便安装在ESP-IDF框架中,可以在工程中被调用了
操作步骤
这里以添加Bounce2库为例进行说明
下载Bounce
GitHub - thomasfredericks/Bounce2: Debouncing library for Arduino and Wiring
在这里使用git或下载zip包均可
安装Bounce
将下载的文件夹(压缩包需要解压)移动到components/arduino/libraries路径下,并重命名为Bounce2
查看添加库里所有的源文件位置
(在linux下可使用如下命令:find libraries/Bounce2/src/ -name '*.c' -o -name '*.cpp'),可以看到在Bounce2/src路径下有.h和.cpp文件

在arduino的CMakeList.txt里添加库源文件
打开/idf/components/arduino/CMakeLists.txt文件
- 添加头文件include路径
在set(includedirs字段末尾加上源文件include路径,如:libraries/Bounce2/src

- 添加源文件路径
在set(LIBRARY_SRCS字段末尾添加,如:libraries/Bounce2/src/Bounce2.cpp

使用Bounce
在工程里include头文件,并调用库API即可使用该库,如下所示:


参考资料:https://docs.espressif.com/projects/arduino-esp32/en/latest/esp-idf_component.html
相关文章:
在ESP32-Arduino开发中添加其它Arduino库
目录 前言 原理说明 操作步骤 下载Bounce 安装Bounce 将下载的文件夹(压缩包需要解压)移动到components/arduino/libraries路径下,并重命名为Bounce2 查看添加库里所有的源文件位置 在arduino的CMakeList.txt里添加库源文件 使用Bounce 前言 乐鑫官方的es…...
CAN总线测试——CAN一致性之物理层
CAN一致性物理层测试项 1.最小通讯电压测试2.最大通讯电压测试3.显性位/隐性位输出电压测试4.信号跳变沿测试5. 地偏移6. 终端电阻 1.最小通讯电压测试 2.最大通讯电压测试 3.显性位/隐性位输出电压测试 4.信号跳变沿测试 5. 地偏移 6. 终端电阻...
macrodata数据集在Python统计建模和计量经济学中的应用
目录 一、数据介绍二、应用三、statsmodels 统计模块四、使用 statsmodels 统计模块分析 macrodata.csv 数据集参考 一、数据介绍 macrodata.csv是一个示例数据集,通常用于统计分析和计量经济学中的教育和训练目的。这个数据集通常包括以下列: year&am…...
【C++进阶(九)】C++多态深度剖析
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:C从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习C 🔝🔝 多态 1. 前言2. 多态的概念以及定义3. 多态的实…...
第二节——Vue 基本介绍
一、MV*的理解 1、概念 在计算机编程领域,MV*(也称为MVC、MVP、MVVM等)是一种用于组织和设计应用程序结构的模式。这些模式旨在实现应用程序的解耦、可维护性和可扩展性。MV代表着Model-View-(表示控制器或视图模型等其他组件&a…...
基于ResNet34的花朵分类
一.数据集准备 新建一个项目文件夹ResNet,并在里面建立data_set文件夹用来保存数据集,在data_set文件夹下创建新文件夹"flower_data",点击链接下载花分类数据集https://storage.googleapis.com/download.tensorflow.org/example_i…...
[计算机提升] 数据及相关概念
1.9 数据及相关概念 1.9.1 数据、信息 在Windows系统中,数据是指事实或信息的集合,可以是数字、文本、图像、声音等形式的内容。数据是计算机系统中处理和操作的基本元素,是信息的表现形式和载体。 与信息相比,数据的范围更广泛…...
第18章 SpringCloud生态(二)
18.11 说说你了解的负载均衡算法 难度:★★ 重点:★★★★ 白话解析 常用的负载均衡算法有: 1、轮询(Round Robin):说白了就是让服务器排好队,一个个轮着来调用;Ribbon默认采用该算法。 优点:实现起来简单; 缺点:服务器性能不一样的情况下,导致能力强的会经常空闲…...
【Android】BRVAH多布局实现
前言 基于3.0.4版本的BRVAH框架实现的 实现方法 1.创建多个不同类型的布局(步骤忽略) 2.创建数据实体类 数据类要实现【MultiItemEntity】接口 class MyMultiItemEntity(//获取布局类型override var itemType: Int,var tractorRes: Int? null,va…...
AWS SAP-C02教程9-节省成本
SAP-C01变成SAP-C02的时候,最大的变化就是没有把成本单独列出一个模块,但是成本依然包含在各个其它模块之中,所以成本还是很重要的。本章将列举一些成本优化方案以及一些成本辅助功能。 目录 1 Cost Allocation Tags2 Trusted Advisor2.1 AWS Support Plans2.2 基本特性2.3…...
[CSP-S 2023] 种树 —— 二分+前缀和
This way 题意: 一开始以为是水题,敲了一个二分贪心检查的代码,20分。发现从根往某个节点x走的时候,一路走来的子树上的节点到已栽树的节点的距离会变短,那么并不能按照初始情况贪心。 于是就想着检查时候用线段树…...
【LeetCode周赛】LeetCode第368场周赛
目录 元素和最小的山形三元组 I元素和最小的山形三元组 II合法分组的最少组数 元素和最小的山形三元组 I 给你一个下标从 0 开始的整数数组 nums 。 如果下标三元组 (i, j, k) 满足下述全部条件,则认为它是一个山形三元组 : i < j < k nums[i] &l…...
【智慧工地源码】基于AI视觉技术赋能智慧工地
伴随着技术的不断发展,信息化手段、移动技术、智能穿戴及工具在工程施工阶段的应用不断提升,智慧工地概念应运而生,庞大的建设规模催生着智慧工地的探索和研发。 建筑施工具有周期长、环境复杂、工序繁杂、人员流动性大等特点,所以…...
云服务器搭建Hadoop分布式
文章目录 1.服务器配置2.Java环境3. 安装Hadoop4. 集群配置5. 编写集群的启动脚本 1.服务器配置 服务器主机名配置115.157.197.82s110核115.157.197.84s210核115.157.197.109s310核115.157.197.31s410核115.157.197.60gracal10核 所有的软件安装在/opt/module下,软…...
2678. 老人的数目
给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息,信息用长度为 15 的字符串表示,表示方式如下: 前十个字符是乘客的手机号码。 接下来的一个字符是乘客的性别。 接下来两个字符是乘客的年龄。 最后两个字符是…...
【刷题-牛客】出栈、入栈的顺序匹配 (代码+动态演示)
【刷题-牛客】出栈、入栈的顺序匹配 (代码动态演示) 文章目录 【刷题-牛客】出栈、入栈的顺序匹配 (代码动态演示) 解题思路 动图演示完整代码多组测试 💗题目描述 💗: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个…...
vscode类似GitHub Copilot的插件推荐
由于GitHub Copilot前段时间学生认证的账号掉了很多,某宝激活也是价格翻了几倍,而却,拿来用一天就掉线,可以试试同类免费的插件哦。 例如:TabNine,下载插件后,他会提示你登录,直接登…...
Html -- 文字时钟
Html – 文字时钟 文字时钟,之前在Android上实现了相关效果,闲来无事,弄个网页版的玩玩。。。直接上代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><titl…...
快问快答:关于线上流量卡“归属地随机”几个问题!
在网上办过流量卡的朋友应该都知道,资费虽然便宜,但是归属地却是异地,今天小编就给大家聊一聊关于流量卡归属地的问题。 网上的流量卡都是归属地随机的卡,今天小编以问答的方式给大家普及一下,如果对于归属地有疑问…...
Linux常用命令——clock命令
在线Linux命令查询工具 clock 用于调整 RTC 时间。 补充说明 clock命令用于调整 RTC 时间。 RTC 是电脑内建的硬件时间,执行这项指令可以显示现在时刻,调整硬件时钟的时间,将系统时间设成与硬件时钟之时间一致,或是把系统时间…...
终极解锁:AMD Ryzen处理器SMU调试工具完全指南
终极解锁:AMD Ryzen处理器SMU调试工具完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcode.c…...
丹青幻境使用技巧:批量生成、种子控制、作品管理全攻略
丹青幻境使用技巧:批量生成、种子控制、作品管理全攻略 1. 丹青幻境核心功能概览 丹青幻境(Z-Image Atelier)是一款融合东方美学与先进AI技术的数字艺术创作工具。它基于Z-Image架构和Cosplay LoRA技术构建,为创作者提供了独特的…...
2026会话存档是什么?新版会话存档有什么功能?
一.概述会话内容存档产品——乐聊会话助手plus是由贵州遐宇科技服务有限公司与企业微信合作产品。此产品是基于企业微信会话存档API接口进行二次开发的监管系统,2024年1月登记为软件作品正式发行。该系统提供企业会话内容存档管理、超时回复提醒、员工客户互动过程合…...
crontab——你的自动化打工人
咕嘎讲堂:crontab——你的自动化打工人 “人类最大的进步,就是学会了让机器帮自己干活。”——咕嘎 📌 crontab 是什么? crontab cron table,是 Linux 系统中用于定时执行任务的工具。 简单说:你想让系…...
解决LoRA测试痛点:Jimeng系统如何防止显存爆炸与效果失真
解决LoRA测试痛点:Jimeng系统如何防止显存爆炸与效果失真 1. LoRA测试的传统痛点 在模型微调领域,LoRA(Low-Rank Adaptation)技术因其参数高效性而广受欢迎。然而在实际测试过程中,开发者常常面临两大核心挑战&#…...
多进程-生产者消费者C++实现
条件变量通常与互斥锁配合使用,用于线程之间的通信和同步。它允许线程在某个条件满足之前等待,当条件满足时,其他线程可以通知等待的线程继续执行。例如,在生产者 - 消费者模型中,生产者线程生产数据后,通过…...
掌握Vibe Kanban会话管理:高效管理AI编码代理对话历史的终极指南
掌握Vibe Kanban会话管理:高效管理AI编码代理对话历史的终极指南 【免费下载链接】vibe-kanban Get 10X more out of Claude Code, Codex or any coding agent 项目地址: https://gitcode.com/GitHub_Trending/vi/vibe-kanban 在AI驱动开发的时代,…...
Kandinsky-5.0-I2V-Lite-5s图生视频入门必看:首帧选择+运动提示词写作黄金法则
Kandinsky-5.0-I2V-Lite-5s图生视频入门必看:首帧选择运动提示词写作黄金法则 1. 为什么选择Kandinsky-5.0-I2V-Lite-5s 如果你正在寻找一个简单易用的图生视频工具,Kandinsky-5.0-I2V-Lite-5s可能是你的理想选择。这个轻量级模型只需要一张图片和一句…...
机器学习工程师的日常:挑战与解决
在人工智能驱动的软件测试变革浪潮中,机器学习工程师已成为测试团队的核心驱动力。他们架起算法模型与测试实践的桥梁,直面数据、模型、工程化三大维度的挑战。本文将深入剖析其日常工作中的典型困境及系统性解决方案,为软件测试从业者提供可…...
模型剪枝方法全解
目录 写在前面 一、为什么需要剪枝:过参数化是个普遍现象 二、剪枝的基本流程 三、非结构化剪枝(Unstructured Pruning) 3.1 幅值剪枝(Magnitude Pruning) 3.2 非结构化剪枝的硬件问题 四、结构化剪枝ÿ…...
