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

目录

前言

原理说明

操作步骤

下载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

注意:这里++需要根据自己已有的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

相关推荐
xiaohai@Linux3 天前
ESP32 在IDF_V5.3.1版本下实现AP无线热点模式!(带WIFI事件处理)
c语言·嵌入式硬件·tcp/ip·wifi·esp32
乐鑫科技 Espressif3 天前
解锁 AIoT 无限可能,乐鑫邀您共赴 Embedded World 2025
esp32·wi-fi·iot·乐鑫科技·embedded world
胖多鱼6 天前
WeMos D1+PIR+Android 的小场景制作
android·arduino·pir·hc-sr501
深圳启明云端科技7 天前
ESP32无线Wi-Fi蓝牙方案,设备智能连接控制,物联网通信应用
物联网·esp32·芯片·乐鑫·模组·无线方案
极梦网络无忧9 天前
Arduino 第十六章:pir红外人体传感器练习
单片机·嵌入式硬件·arduino
PassLink_12 天前
ESP32S3(主模式) 与 STM32(从模式) 进行SPI全双工通信
stm32·单片机·嵌入式硬件·esp32·spi
生活最重要(ง •̀_•́)ง13 天前
[ESP32:Vscode+PlatformIO]添加第三方库 开源库 与Arduino导入第三方库的区别
esp32·arduino·第三方库·开源库·platformio
冰羽IOX17 天前
CH340G上传程序到ESP8266-01(S)模块
arduino·esp8266·ch340g·usb to ttl
生活最重要(ง •̀_•́)ง20 天前
[ESP32:Vscode+PlatformIO]新建工程 常用配置与设置
vscode·esp32·arduino·platformio
Android小码家1 个月前
ESP32-CAM导入ino项目编译和烧录
esp32