在ESP32上使用Arduino(Arduino as an ESP-IDF component)

news2024/11/17 7:50:59

目录

前言

原理说明

操作步骤

下载esp-arduino

安装esp-arduino

工程里配置arduino

1、勾选该选项,工程将作为一个标准的arduino程序工作

2、不勾选该选型,工程将作为一个传统的嵌入式项目开发,


前言

  • Arduino拥有丰富的各类库,使用这些现成的轮子进行开发,可以事半功倍。
  • ESP32是现在非常流行的IoT开发SOC,资料和开发板资源都很丰富,官方支持也非常到位,所以结合两者在一起使用,简直不要太香。
  • 乐鑫官方提供了两种在ESP32上使用Arduino的方法,一种是以Arduino为主,IDF框架做为库被调用,适合于比较熟悉Arduino开发的同学;另一种是将Arduino作为IDF的一个组件,在IDF框架中,调用Arduino API来开发,适合平时熟练于嵌入式C开发的同学。我平时主要是做嵌入式开发,所以选择使用第二种方式

原理说明

将ESP-Arduino核心作为一个component,安装在ESP-IDF框架里,然后在工程的sdkconfig里配置选择使用Arduino的方式

操作步骤

下载esp-arduino

  • git方式:https://github.com/espressif/arduino-esp32
  • 下载release压缩包:Releases · espressif/arduino-esp32 · GitHub

 注意:这里需要根据自己已有的ESP-IDF框架来选择合适版本的Arduino来下载,我使用的是IDF v4.4.5,所以下载如下版本:(个人推荐下载压缩包,比较快和方便)

安装esp-arduino

将下载的文件夹(压缩包需要解压:unzip xxx.zip)移动到ESP-IDF/components目录下,并重命名为arduino,这样就完成安装了

工程里配置arduino

新建工程,运行idf.py menuconfig进入工程配置界面,进入:Arduino Configuration --->

在如下红线选项里勾选与否,决定了不同使用arduino的方式

1、勾选该选项,工程将作为一个标准的arduino程序工作

   接下来依次进行如下操作:

  • 把工程里的main.c重命名为main.cpp
  • 将工程里的CMakeList.txt重命名为main.cpp
  • 在main.cpp里按照arduino程序的框架,include "arduino.h",并编写setup和loop函数,然后调用其它arduino API来进行应用业务编程

2、不勾选该选型,工程将作为一个传统的嵌入式项目开发,

  • 首先最好还是重命名main.c为main.cpp,并在工程的CMakeList.txt里进行同样的更改
  • main.cpp里,使用extern "C"来声明app_main()
  • 调用initArduino()进行arduino core初始化
  • 后面就可以调用arduino 及其库的API来进行应用编程

参考资料:Arduino as an ESP-IDF component — Arduino-ESP32 2.0.6 documentation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1121387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一款WPF开发的网易云音乐客户端 - DMSkin-CloudMusic

前言 今天推荐一款基于DMSkin框架开发的网易云音乐播放器:DMSkin-CloudMusic。 DMSkin 框架介绍 DMSkin是一个开源的WPF样式UI框架,可以帮助开发者快速创建漂亮的用户界面。 下载体验 下载地址:https://github.com/944095635/DMSkin-Clou…

如何使用vim粘贴鼠标复制的内容

文章目录 一、使用步骤1.找到要编辑的配置文件2.找到目标文件3.再回到vim编辑器 一、使用步骤 1.找到要编辑的配置文件 用sudo vim /etc/apt/sources.list编辑软件源配置文件 sudo vim /etc/apt/sources.listvim 在默认的情况下当鼠标选中的时候进入的 Visual 模式&#xff…

加法器:如何像搭乐高一样搭电路(上)?

目录 背景 异或门和半加器 全加器 小结 补充阅读 背景 上一讲,我们看到了如何通过电路,在计算机硬件层面设计最基本的单元,门电路。我给你看的门电路非常简单,只能做简单的 “与(AND)”“或&#xff…

UG\NX二次开发 获取用户默认设置中的绘图信息 UF_PLOT_ask_session_job_options

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 感谢粉丝订阅 感谢 m0_58724732 订阅本专栏,非常感谢。 简介 UG\NX二次开发 获取用户默认设置中的绘图信息 UF_PLOT_ask_session_job_options 效果 代码 #include "me.hp

window11安装Python环境

python环境安装 访问Python官网:https://www.python.org/ 点击downloads按钮,在下拉框中选择系统类型(windows/Mac OS/Linux等) 选择下载最新版本的Python cmd命令如果出现版本号以及>>>则表示安装成功 如果出现命令行中输入python出现如下错误 可能…

【SSA-RFR预测】基于麻雀算法优化随机森林回归预测研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【JavaEE重点知识归纳】第11节:认识异常

目录 一:异常的概念和体系结构 1.概念 2.体系结构 3.异常分类 二:异常的处理 1.防御式编程 2.异常的抛出 3.异常的捕获 4.异常的处理流程 三:自定义异常 一:异常的概念和体系结构 1.概念 (1)在…

dy、ks最新版通用quic协议解决方案

短视频最新版通用quic协议解决方案 由于最新版的两款短视频都使用了quic协议,这就导致爬虫小伙伴在抓包的过程遇到不能抓包的问题,这里提供他们quic协议所有版本的通用解决方案,使他们不使用quic协议,直接通过Charles抓包。 由于…

仪器器材经营小程序商城的作用是什么

互联网发展下,数字化转型已经成为常态,仅依赖传统线下经营模式将很难再增长。 作为产品销售及客户维护度高的仪器器材行业,拥有自营商城平台是必要的,不仅可以解决以上难题,还利于打造自身品牌多渠道传播,…

css之Flex弹性布局(子项常见属性)

文章目录 🎀前言:本篇博客介绍弹性布局flex容器中子项的常见用法🪀flex:子项目占得份数 (划分不同子项的比例)🎇align-self 控制单独一个子项在侧轴的排列方式🧸order属性定义子项的排列顺序 &a…

10.18~10.22数电第二次实验

频分复用 同一个时间共用一个频道,只不过频率不同,所以互不影响 时分复用 不同时间公用一个频道,轮流使用 时分复用(TDM,Time-division multiplexing)就是将提供给整个信道传输信息的时间划分成若干时间…

使用反射拼接SQL语句 和 使用 反射 + 注解 拼接SQL语句

以下知识本人都是用 Maven工程 总结的 1、使用反射拼接SQL语句 package com.csdn.anno; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.util.Properties; public class AnnotationTest {public static void main(Str…

散列表:为什么散列表和链表经常会一起使用?

文章来源于极客时间前google工程师−王争专栏。 链表那一节,我们用链表来实现LRU缓存淘汰算法,但是链表实现的LRU时间复杂度是O(n),可以通过散列表将时间复杂度降低为O(1) 跳表那一节,Redis的有序集合是使用跳表来实现的&#xf…

阿伐曲泊帕的合并用药方案【医游记】

(图片来源于网络!) 阿伐曲泊帕是一种口服的促血小板生成素受体激动剂,用于治疗择期行诊断性操作或手术的慢性肝病相关血小板减少症的成年患者。本文将介绍阿伐曲泊帕的药理作用和药物相互作用。 药理作用 阿伐曲泊帕可以与人体…

H3C SecParh堡垒机 get_detail_view.php 任意用户登录漏洞

与齐治堡垒机出现的漏洞不能说毫不相关,只能说一模一样 POC验证的url为: /audit/gui_detail_view.php?token1&id%5C&uid%2Cchr(97))%20or%201:%20print%20chr(121)%2bchr(101)%2bchr(115)%0d%0a%23&loginadmin成功获取admin权限 文笔生疏…

C语言笔试面试必刷题

🎊【面经】专题正在持续更新中,内含C语言,数据结构,Linux,网络编程等✨,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列专栏 - ​​…

【LSTM-Attention】基于长短期记忆网络融合注意力机制的多变量时间序列预测研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

URV5使用指南

1. 下载软件 搜索这个地址下载软件 https://github.com/Anjok07/ultimatevocalremovergui/releases/download/v5.6/UVR_v5.6.0_setup.exe 我现在使用的是目前的最新版本5.6.0,后面肯定会出新版,但是流程大致类似。 2.安装软件 基本一直点next就可以&a…

论坛议程|COSCon'23 区块链(B)

众多开源爱好者翘首期盼的开源盛会:第八届中国开源年会(COSCon23)将于 10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是:“开源:川流不息、山海相映”!各位新老朋友们,欢迎到成都&a…

【链表专题】

链表专题 移除链表元素设计链表反转链表 移除链表元素 移除链表元素(Leetcode:203) 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 /*** Definition for sing…