ESP32 Arduino 开发框架

Arduino开发环境下适用于ESP32芯片系列开发板的应用开发框架。

一、概要

ESP32 Arduino Framework是专门针对ESP32开发板的Arduino应用开发框架,为用户开发IOT应用、HMI应用提供一致的开发体验。 目前支持以下功能:

  • 提供常用LCD、OLED显示屏设备的驱动
  • 提供常用音频编解码器设备的驱动
  • 提供LED、灯珠等设备的驱动
  • 提供统一的抽象化接口来操作UI、音频编解码等
  • 提供WiFi信息配置界面
  • 提供OTA在线升级
  • 内置支持LVGL、TFT_eSPI、U8G2、GFX_Library图形化开发库

二、运行DEMO

若本开发框架内置了你的开发板
  1. 打开config.h文件,找到开发板型号,将定义值修改为1

  2. 将要运行应用 APP_DEMO_xxx 的值修改为1

  3. 设置开发板的型号、FLASH大小、PSRAM、分区等选项

  4. 编译并上传运行

三、架构

ESP32 Arduino 开发框架

本框架采用C++面向对象设计,其中Board类封装硬件相关代码,包括LED、传感器、执行器件、显示器件等的驱动代码;
Application类为业务应用提供基础封装,包括时钟、WiFi配置、OTA升级、与Board类硬件驱动的交互等功能,提供一套标准的开发规范。

四、应用开发

硬件驱动开发
  1. 在boards文件夹创建一个子目录,如your_board,新建一个继承WifiBoard类(若不使用WiFi功能,也可以继承Board类)的自定义开发板类,然后实现设备的驱动:
    LED:内置单色LED、三色LED和WS2812灯珠类;
    按键:内置OneButton按键库;
    显示屏:内置U8G2、TFT_eSPI、GFX Libarary驱动库;
    其他可参考DEMO程序。

  2. 实现create_board方法,返回your_board的类实例;

  3. 设置开发板的型号、FLASH大小、PSRAM、分区等选项;

业务应用开发
  1. 在src文件夹创建一个子目录,如your_app,新建一个继承Application类的自定义应用类,然后实现业务逻辑;

  2. 继承并重写OnInit方法,编写相关初始化代码;

  3. 继承并重写OnLoop方法,编写相关需要重复执行的代码;

  4. 实现create_application方法,返回youe_app的类实例。

在Application类实例里,可以通过Board类实例来访问各硬件。


源码地址:https://gitee.com/billyzh/esp32-arduino-framework

- 本文由用户 老张 发布,文中观点仅代表作者本人,不代表本站立场。
- 如需转载,请联系作者;如有侵权,请联系本站处理。

2025-12   阅读(1175)   评论(0)
 标签: 编程 ESP32 Arduino Cpp ESP32-ArduinoFx

涨知识
万向节

万向节即万向接头,英文名称universal joint,是实现变角度动力传递的机件,用于需要改变传动轴线方向的位置

评论:
相关文章
【ESP32 C++教程】Unit7-3:TFT-LCD显示屏

本节主要讲解TFT-LCD显示屏的使用和Window派生类与TFT_eSPI库的使用。


基于STEAM教育和设计思维的初中化学跨学科实践活动——基于血氧指标控制的简易供氧器设计与制作

这篇文章展示了如何将化学与工程、信息技术、现代制造技术紧密结合,以“血氧指标控制的简易供氧器”为载体,组织一次真实的跨学科项目。设计中突出“从需求出发”“闭环控制”“可视化反馈”,不仅呼应了新课标中“跨学科实践”的要求,更贴近生活实际需求,尤其适用于对科技应用、健康关怀有兴趣的学生群体,可作为项目式学习或社团活动的优质课例。


【ESP32 C++教程】Unit7-2:OLED显示屏

本节主要讲解OLED显示屏的使用和Display类及派生类的介绍及使用。


【ESP32 C++教程】Unit7-1:四位7段式数码管

本节主要讲解用TM1650来驱动四位7段式数码管模块的显示使用。


【ESP32 C++教程】Unit6-4:资源互斥访问

本节主要讲解FreeRTOS任务间如何使用互斥对象来实现资源互斥访问。


ESP32 Guru Meditation Error报错定位分析

在ESP32的开发,经常会有系统崩溃一直重启的情况,那么如何快速定位出现异常的代码呢?


【ESP32 C++教程】Unit6-3 FreeRTOS任务间通信

本节主要讲解FreeRTOS任务间如何使用消息队列、事件组和二进制信号量进行通信。


【ESP32 C++教程】Unit6-2 FreeRTOS多任务

本节主要讲解Task类,FreeRTOS多任务的使用。


【ESP32 C++教程】Unit6-1 定时器

本节主要讲解Timer类,FreeRTOS定时器的使用。


【ESP32 C++教程】Unit5-2 执行器件之舵机

本节主要讲解舵机驱动类和用按键控制舵机。