ESP32-P4-WIFI6-Touch-LCD-4C 使用教程

说明

产品简介

ESP32-P4-WIFI6-Touch-LCD-4C是一款微雪(Waveshare)设计的基于 ESP32-P4 芯片的双核加单核 RISC-V 高性能开发板。配备了 3.4 寸 800 × 800 分辨率 IPS 圆形触摸显示屏;支持丰富的人机交互接口,包含 MIPI-CSI (集成图像信号处理器 ISP),它还支持 USB OTG 2.0 HS 以实现高速连接,并板载 40PIN GPIO 扩展接口,兼容部分树莓派 HAT 扩展板,实现更广泛的应用适配。ESP32-P4 芯片集成了数字签名外设和专用密钥管理单元,确保数据和操作的安全性,专为高性能和高安全应用设计,充分满足嵌入式应用对人机界面支持、边缘计算能力和 IO 连接特性等方面的更高需求。

产品特性

  • 处理器
    • 搭载RISC-V 32位双核处理器(HP系统),配备 DSP 和指令集扩展、浮点运算单元(FPU),主频高达400MHz
    • 搭载RISC-V 32位单核处理器(LP系统),主频高达40MHz
    • 搭载ESP32-C6 WIFI/BT协处理器,通过SDIO拓展WIFI 6/Bluetooth 5等功能
  • 存储器
    • 128 KB的高性能(HP)系统只读存储器(ROM)。
    • 16 KB的低功耗(LP)系统只读存储器(ROM)。
    • 768 KB的高性能(HP)L2内存(L2MEM)。
    • 32 KB的低功耗(LP)SRAM。
    • 8 KB的系统紧密耦合内存(TCM)。
    • 封装内叠封32 MB PSRAM,QSPI接口连接32MB Nor Flash
  • 外设接口
    • 板载Type-A USB 2.0 OTG接口、SDIO3.0 SD卡槽、Type-C UART烧录口,方便不同场景使用
    • 板载扬声器接口、麦克风,可使用Codec芯片和功放芯片实现理想的音频功能需求
    • 板载MIPI-CSI高清摄像头接口,支持全高清1080P画面采集及编码,集成图像信号处理器(ISP)、H264视频编码器,支持H.264 & JPEG 视频编码(1080P @30fps),方便应用到计算机视觉、机器视觉等领域
    • 板载MIPI-DSI高清屏显接口,集成像素处理加速器(PPA)、2D 图形加速控制器(2D DMA),支持JPEG 图像解码(1080P @30fps),为高清屏显和流畅的HMI体验提供了强大支持,方便应用到智能家居中控屏、工业中控屏、自动贩卖机等场景

硬件说明


1、ESP32-P4-Core
集成 ESP32-P4NRW32、32MB Nor Flash

2、ESP32-C6-MINI-1 模组
SDIO 接口协议,拓展开发板 Wi-Fi 6、Bluetooth 5 (LE)

3、MIPI CSI 接口
15Pin 1.0mm 间距,支持 MIPI-2lane 摄像头

4、ES7210 回声消除算法芯片
回声消除算法芯片,可用于消除回声,提高音频采集准度

5、Type-C 接口
USB 2.0 Full Speed 接口,可用于供电与程序烧录、调试

6、RTC 座子
接入可充电的 RTC 电池 (只支持可充电的 RTC 电池)

7、Type-C 接口 USB TO UART
可用于供电与程序烧录、调试

8、Power LED 灯
电源指示灯

9、Type-A 接口 USB OTG
USB OTG 2.0 High Speed 接口


10、ES8311 低功耗音频编解码芯片
用于处理音频编码、解码

11、扬声器
PH 2.0 2P 连接器,支持 8Ω 2W 喇叭 (推荐)

12、贴片麦克风
麦克风输入及回声消除

13、MIPI DSI LCD 接口
连接 MIPI 2-lane 屏幕

14、SH1.0 4Pin 座子
用于 ESP32-C6 模组烧录固件

15、SH1.0 4Pin 座子
引出 ESP32-P4 串口,可用于烧录、调试

16、40PIN 排座扩展接口
2.54mm 间距,引脚可兼容部分树莓派 HAT 扩展板 (须加排针转接)

17、BOOT 按键
上电或者复位时按下,进入下载模式

18、Micro SD 卡槽
SDIO 3.0 接口协议

19、RESET 按键

产品尺寸



使用说明

本教程旨在指导用户搭建 ESP32-P4 硬件开发的软件环境,通过简单的示例展示如何使用 ESP-IDF 配置菜单,并编译、下载固件至 ESP32-P4 开发板等步骤。

  • 准备工作
    • 硬件
      • ESP32-P4-WIFI6-Touch-LCD-4C 开发板
      • USB数据线(Type-A转Type-C,按需准备)
      • 电脑(Windows、Linux或macOS)
    • 软件(推荐使用集成开发环境安装ESP-IDF,如果你熟悉ESP-IDF可以直接从ESP-IDF终端出发,以下开发方式任选其一即可)
      • VSCode + ESP-IDF插件推荐
      • Eclipse + ESP-IDF插件(Espressif-IDE)
      • Arduino IDE

Arduino

本章介绍 Arduino 环境搭建,包括 Arduino IDE、ESP32板管理、相关库的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。 


环境搭建

下载和安装 Arduino IDE

  • 点击访问Arduino官网,选择对应的系统和系统位数下载。

  • 运行安装程序,全部默认安装即可。
环境设置是在 Windows 10 系统下进行,Linux和Mac用户可访问Arduino-esp32环境搭建参考

安装 ESP32 开发板

  • ESP32相关主板在Arduino IDE使用,须先安装“esp32 by Espressif Systems”开发板的软件包
  • 根据板安装要求进行安装,一般推荐“在线安装”, 若在线安装失败,则使用“离线安装
  • 安装教程,详见:Arduino 板管理教程
  • ESP32-P4 所需开发板安装说明
板名称板安装要求版本号要求
esp32 by Espressif Systems“离线”安装/“在线”安装≥3.2.0

安装库

  • 在安装 Arduino 库时,通常有两种方式可供选择:在线安装 和 离线安装若库安装要求离线安装,则必须使用提供的库文件
    对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。
  • ESP32-P4 库文件存放于示例程序中
  • 库安装教程,详见:Arduino 库管理教程
ESP32-P4 库文件说明
库名称说明版本库安装要求
GFX_Library_for_Arduino适配SH8601的GFX图形化库v1.6.0“离线”安装
lvglLVGL图形化库v9.3.0建议使用“离线”安装
displaysI2C驱动、屏幕定义以及触摸驱动——“离线”安装
lv_conf.hLVGL配置文件——“离线”安装

运行第一个 Arduino 程序


如果你刚入门学习ESP32和Arduino,还不知道如何创建、编译、烧录和运行Arduino ESP32程序,那么请展开看看,希望可以帮助到你!

新建工程

  • 运行Arduino IDE,选择 File -> New Sketch

  • 输入代码:
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("Hello, World!");
  delay(2000);
}
  • 保存代码工程,选择 File -> Save As...;在弹出的菜单选择保存工程路径,并输入工程名,如 Hello_World,点击保存

编译和烧录程序

  • 选择对应的开发板,以ESP32S3主板为例:

①. 点击选择下拉框选项“Select Other Board and Port”;
②. 搜索需要的开发板型号“esp32s3 dev module”并选择;
③. 选择COM口
④. 保存选择。

  • 若ESP32S3主板只有USB口,须打开(Enable)USB CDC,如下图所示:


  • 编译并上传程序:

①. 编译程序;②. 编译并下载程序;③. 下载成功。

  • 打开串口监视窗口,程序每隔2秒会打印“Hello World!”,运行情况如下所示:


示例程序


  • ESP32-P4 示例程序
示例程序基础例程说明依赖库
HelloWorld展示了基本的图形库功能,也可以用于测试显示屏的基础性能以及随机文本显示效果GFX_Library_for_Arduino , displays
Drawing_board触摸画点测试GFX_Library_for_Arduino,displays
AsciiTable根据屏幕尺寸,在显示屏上按行列打印ASCII字符GFX_Library_for_Arduino , displays
GFX_ESPWiFiAnalyzer在屏幕上绘制WiFi频段信号强度GFX_Library_for_Arduino , displays
LVGLV9_ArduinoLVGL演示LVGL,GFX_Library_for_Arduino , displays
  • ESP32-P4 选择型号 ESP32P4 DEV Module

ESP-IDF

ESP-IDF 简介及环境搭建(VSCode专栏)

ESP-IDF(Espressif IoT Development Framework)是乐鑫(Espressif)推出的开源物联网开发框架,专门用于其ESP32系列芯片的开发。ESP-IDF提供了构建物联网应用的必要工具和库,包括Wi-Fi、蓝牙、外设驱动、文件系统、网络协议栈、加密、安全和实时操作系统(FreeRTOS)等。

下面描述只适用于使用VSCode + ESP-IDF环境搭建

  • PS:
    • 如若希望使用Eclipse 编辑器来作为主力开发环境,请点击链接下载Espressif-IDE安装,并替换ESP-IDF版本≥v5.3.1
    • 若下述安装ESP-IDF过程中出现TSL Error、Network Error等报错、异常等情况,请重新清理目录文件夹、确保网络环境稳定无代理污染等并重新进行安装。所需时间较长,请耐心等待。

先决条件

  1. 如果您使用的是 Mac 或 Linux,请安装以下ESP-IDF 先决条件。如果您使用的是 Windows,请忽略此步骤。

安装VSCode

  1. 打开VSCode官网的下载页面,选择对应系统和系统位数进行下载

  2. 运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项

    • 第一、二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验
    • 第三项开启后,选择打开方式时,可以直接选择VSCode

安装ESP-IDF插件

  1. 打开VSCode,点击插件管理器,并搜索ESP-IDF进行下载安装,如图:

  2. 安装好后左侧工具栏有Espressif的Logo就是插件,点击进入插件(会有一小段时间用于加载程序),选择“EXPRESS”进行快速安装,如图:

安装ESP-IDF开发环境

  1. 进入EXPRESS安装界面,确认好ESP-IDF 版本≥v5.3.1发布版本、ESP-IDF 目录和ESP-IDF 工具目录后,点击Install,耐心等待安装步骤完成,如图:

  2. 如果是国内用户,可以选择下载服务器为Espressif,安装过程比较缓慢,确保网络状态良好,可耐心等待安装完成,安装过程展示:

  3. 安装完成标志:

入门(Getting Start)

本wiki不间断更新ESP32-P4示例程序,部分应用程序所需ESP-IDF版本依赖,需要一定时间测试更新,请耐心等待。

学习一门语言或开发环境的最好方式是从入门开始,在本章节详细介绍如何创建项目、从现有项目开发、以及嵌入式经典教程HelloWorld和常用接口I2C的使用

一个ESP-IDF项目的基本结构介绍

  • 打开ESP-IDF插件,点击New project,选择ESP-IDF示例——>sample_project——>点击创建

  • 新建并在窗口中打开可以查看到VSCode的结构如
├── CMakeLists.txt
├── main
│   ├── CMakeLists.txt
│   └── main.c
└── README.md                  

ESP-IDF工程项目详解

  • 组件(Component):ESP-IDF中的组件是构建应用的基本模块,每个组件通常是相对独立的代码库或库,能实现特定的功能或服务,可以被应用程序或是其他组件重复使用,类似于Python开发中的库的定义。
    • 组件的引用:Python开发环境中引入库只需要“import 库名或路径”即可,而ESP-IDF基于C语音基础,引入库是通过CMakeLists.txt进行配置和定义的。
    • 当我们使用在线组件时,通常使用idf.py add-dependency <componetsName>来为项目添加在线组件,这会生成一个idf_component.yml文件用于管理组件。
    • CmakeLists.txt的作用:ESP-IDF编译时编译工具CMake会首先通过读取工程目录的顶层CMakeLists.txt的内容来读取构建规则,识别需要编译的内容。当在CMakeLists.txt中引入了需要的组件、程序后,编译工具CMake会根据索引导入每个所需要编译的内容。编译过程如:


VSCode 用户界面底部工具栏说明

当我们打开一个ESP-IDF工程时,底部会自动加载环境,对于ESP32-P4-WIFI6-Touch-LCD-4C的开发,底部工具栏也是一个非常重要的,如图示: 

  1. ESP-IDF开发环境版本管理器,当我们的工程需要区分开发环境版本时,可以通过安装不同版本的ESP-IDF来分别管理,当工程使用特定版本时,可以通过使用它来切换
  2. 设备烧录COM口,选择以将编译好的程序烧录进芯片上
  3. set-target 芯片型号选择,选择对应的芯片型号,如:ESP32-P4-WIFI6-Touch-LCD-4C需要选择esp32p4为目标芯片
  4. menuconfig,点击修改sdkconfig配置文件内容
  5. fullclean 清理按钮,当工程编译报错或其他操作污染编译内容时,通过点击清理全部编译内容
  6. Build 构建工程,当一个工程满足构建时,通过此按钮进行编译
  7. flash烧录按钮,当一个工程Build构建通过时,选择对应开发板COM口,点击此按钮可以将编译好的固件烧录至芯片
  8. monitor开启烧录口监控,当一个工程Build——>Flash后,可通过点击此按钮查看烧录、调试口输出的log,以便观察应用程序是否正常工作
  9. Build Flash Monitor 一键按钮,用于连续执行Build——>Flash——>Monitor,常被称作小火苗

HelloWorld 示例

了解完VSCode 用户界面底部工具栏说明后,通过Hello World工程可以快速入门和了解ESP32开发环境的基础项目。它演示了如何使用ESP-IDF来创建一个基本的应用程序,并且涵盖了ESP32的开发流程,包括编译、烧录和监视器调试的步骤。

  1. 打开示例工程HelloWorld后,设置好目标端口、芯片类型(此处注意,选择好芯片类型时右下角有加载动作,这是ESP-IDF正在执行idf.py set-target esp32p4的操作指令,它需要从包管理器拉取对应芯片的架构包环境,需要一定时间处理,请一定要耐心等待,如果此时点击构建等操作会有报错!!!)
  2. 通过底部工具一键构建、烧录、监视,可以查看到终端输出Hello World!

  3. 代码内容解析
    1. 代码中仅有一个app_main主函数,通过条件判断来确定打印内容输出,并在末尾添加了循环,实现10s重启芯片。
    2. app_main函数是ESP-IDF(Espressif IoT Development Framework)开发框架中用户应用程序的入口点。它是ESP-IDF项目的核心函数,相当于C语言标准程序中的main函数。在ESP32开发中,app_main函数是由实时操作系统(FreeRTOS)调度的第一个任务,这也是用户代码执行的起始点。

I2C

I2C是一个较常用的串行通信总线,它可以通过两条线进行通信,一根数据线(SDA, Serial Data)和一根时钟线(SCL, Serial Clock),并支持多主多从模式。在ESP32-P4上一共有2个I2C总线接口,芯片内部通过 GPIO 交换矩阵可配置使用任意 GPIO 管脚,这个特性可以让我们自由的使用任意 GPIO 作为I2C的引脚控制,当然ESP32-P4 I2C支持Slave、Master模式,以下主要使用 I2C 主机(Master)模式,用于 ESP32-P4 启动通信、控制并向从设备(可以是任何I2C接口的传感器)发送数据请求或接收数据。 ESP32-P4-WIFI6-Touch-LCD-4C的I2C引脚默认使用SCL(GPIO8)SDA(GPIO7)

ESP-IDF中,I2C总线需要i2c_master_bus_config_t指定配置:

  • i2c_master_bus_config_t::clk_source选择 I2C 总线的源时钟,使用默认I2C时钟源(通常都使用默认时钟源)则为I2C_CLK_SRC_DEFAULT即可
  • i2c_master_bus_config_t::i2c_port设置控制器使用的 I2C 端口,正如上述说明,ESP32-P4的I2C是有两个的,当有两个不同的I2C需要同时启用,则需要使用其来区分
  • i2c_master_bus_config_t::scl_io_num设置串行时钟总线 (SCL) 的 GPIO 编号,在ESP32-P4-WIFI6-Touch-LCD-4C上,为 8
  • i2c_master_bus_config_t::sda_io_num设置串行数据总线 (SDA) 的 GPIO 编号,在ESP32-P4-WIFI6-Touch-LCD-4C上,为 7
  • i2c_master_bus_config_t::glitch_ignore_cnt设置 Master Bus 的 Glitch Period,如果线路上的 Glitch Period小于此值,可以过滤掉,通常值为 7
  • i2c_master_bus_config_t::enable_internal_pullup启用内部 pullups,在ESP32-P4-WIFI6-Touch-LCD-4C上,已经有额外的I2C上拉,无需启用内部上拉

经上所述,I2C配置为:

   i2c_master_bus_config_t i2c_bus_config = {
       .clk_source = I2C_CLK_SRC_DEFAULT,
       .i2c_port = I2C_NUM_0,
       .scl_io_num = 8,
       .sda_io_num = 7,
       .glitch_ignore_cnt = 7,
       .flags.enable_internal_pullup = false,
   };
  1. 打开i2c_tools工程,选择好COM口和芯片型号,点击进入设置,这里会打开一个新的标签:SDK Configuration editor也就是menuconfig,我们直接在搜索栏中搜索I2C,看到此时内容已经检索,并且示例例程中的SCL GPIO Num、SDA GPIO Num已经对应上了SCL(GPIO8)SDA(GPIO7)
  2. 接下来可以直接通过点击编译、烧录、监视,完成后会在终端查看到命令菜单,当我们执行i2cdetect后,会打印出所有的I2C地址,如果有设备存在则会显示数字(I2C地址 18 设备是板载的ES8311 Codec音频芯片,此芯片会在I2S部分详细说明),如图:

  3. 上述步骤已经实现了I2C设备通信的基础,在I2C通信协议设备中,常常需要通过I2C总线向对应地址的设备写寄存器配置以实现I2C设备的功能,此时我们需要在程序中写好I2C设备的初始化程序以便驱动I2C设备。不同的I2C设备存在不同的I2C地址,在开发中我们可以通过i2ctools工具查询接入的I2C地址,然后通过阅读其芯片手册查询寄存器、配置等内容实现I2C总线的通信。

进阶(Intermediate)

本wiki不间断更新ESP32-P4示例程序,部分应用程序所需ESP-IDF版本依赖,需要一定时间测试更新,请耐心等待。

SDMMC 示例

ESP32-P4-WIFI6-Touch-LCD-4C板载了一个 4-Wire SDIO3.0的卡槽,可拓展片外存储

  • 支持的速率模式
    • 默认速率 (20 MHz)
    • 高速模式(40 MHz)
  • 配置总线宽度和频率

ESP-IDF中,使用sdmmc_host_tsdmmc_slot_config_t设置配置,如设置默认20MHz通信频率、4线宽度通信,则为:

sdmmc_host_t host = SDMMC_HOST_DEFAULT();
sdmmc_slot_config_t slot_config = SDMMC_SLOT_CONFIG_DEFAULT();

在支持 40 MHz 频率通信的设计中,可以调整 sdmmc_host_t 结构体中的 max_freq_khz 字段,提升总线频率:

sdmmc_host_t host = SDMMC_HOST_DEFAULT();
host.max_freq_khz = SDMMC_FREQ_HIGHSPEED;

ESP32-P4-WIFI6-Touch-LCD-4C上的SDMMC 4线连接定义应该为:

sdmmc_slot_config_t slot_config = SDMMC_SLOT_CONFIG_DEFAULT();
slot_config.width = 4;
slot_config.clk = 43;
slot_config.cmd = 44;
slot_config.d0 = 39;
slot_config.d1 = 40;
slot_config.d2 = 41;
slot_config.d3 = 42;
slot_config.flags |= SDMMC_SLOT_FLAG_INTERNAL_PULLUP;
  1. 打开sdmmc工程,选择好COM口和芯片型号,因为demo工程将引脚定义为宏,所以需要进行配置,当然也可以直接填入引脚数值。点击进入设置,这里会打开一个新的标签:SDK Configuration editor也就是menuconfig,我们直接在搜索栏中搜索sd,看到此时内容已经检索,并且示例配置已经配置,勾选上默认初始化且默认创建示例文件:

  2. 接下来插入准备好的SD卡,通过点击编译、烧录、监视,完成后会在终端查看到命令菜单输出了目录下的文件内容:

WIFI联网示例

ESP32-P4本身不带WIFI/BT功能,而ESP32-P4-WIFI6-Touch-LCD-4C 通过 SDIO 连接了一块ESP32-C6 模组来拓展WIFI功能。ESP32-C6作为Slave,通过一系列指令集支持 ESP32-P4 作为 Host 通过SDIO 来使用WIFI 6/BT 5功能,通过添加两个组件后,可以做到无缝使用esp_wifi

// 在一个WIFI工程下,通过ESP-IDF组件管理工具添加下述两个组件
idf.py add-dependency "espressif/esp_wifi_remote"
idf.py add-dependency "espressif/esp_hosted"
  1. 打开wifistation工程,进行组件的添加

  2. 如上图所示,是添加组件的具体步骤
    1. 打开ESP-IDF Terminal。
    2. 在 Terminal 里将所需要的组件进行添加
    3. 成功添加后,在工程项目中的main文件夹中会多出一个idf_component.yml,此文件的作用已经在ESP-IDF工程目录章节说明过是用于管理项目组件的
    4. 打开后,可以看到已经添加上了espressif/esp_hosted: "*"espressif/esp_wifi_remote: "*"两个组件,在构建项目时,它们会被添加到项目中
  3. 接下来可以通过点击 打开设置,输入Example检索,这里设置好要连接WIFI的ssidpassword注意ESP32-C6是支持2.4GHz的WiFi-6,在选择目标WiFi时要确认好频率是2.4GHz的,修改完之后需要保存,否则会出错!

  4. 接下来可以直接通过点击编译、烧录、监视,完成后会在终端查看到如下结果,此时ESP32-P4-WIFI6-Touch-LCD-4C已经接入WIFI并且联网了:

I2S音频示例

I2S(Inter-IC Sound)是一种用于传输音频数据的数字通信协议。I2S 是一种串行总线接口,主要用于音频设备之间的数字音频数据传输,例如数字音频处理器 (DSP)、数字-模拟转换器 (DAC)、模拟-数字转换器 (ADC) 和音频编解码器。
ESP32-P4 包含 1 个 I2S 外设。通过配置这些外设,可以借助 I2S 驱动来输入和输出采样数据。ESP32-P4-WIFI6-Touch-LCD-4C板载了es8311 Codec芯片、ES7210 ADC芯片和NS4150B功放芯片组合,I2S总线和引脚分布如下:

  • MCLK (Master Clock):主时钟信号。这个时钟通常由外部设备(如 MCU 或 DSP)提供给 ES8311,用于为其内部的数字音频处理模块提供时钟源。
  • SCLK (Serial Clock) :串行时钟信号。这个信号通常用于 I2S 数据传输的时钟同步,由主设备生成,用于指示数据的传输速率。每个音频样本的每一位的传输都需要一个时钟周期。
  • ASDOUT (Audio Serial Data Output) 或 DOUT:音频数据输出引脚。ES8311 将解码后的数字音频数据输出到该引脚,然后传输给功放芯片或其他音频设备。
  • LRCK (Left/Right Clock) 或 WS (Word Select):左右声道选择信号,用于指示当前数据样本属于左声道还是右声道。通常在 I2S 协议中,一个时钟周期表示左声道数据,另一个时钟周期表示右声道数据。
  • DSDIN (Digital Serial Data Input) 或 DIN:数字音频数据输入引脚。该引脚接收来自外部音频设备或主设备的音频数据。ES7210 将这些数据解码,并通过数字信号处理模块处理这些音频信号,通过回声消除算法使能。


功能引脚ESP32-P4-WIFI6-Touch-LCD-4C引脚
MCLKGPIO13
SCLKGPIO12
ASDOUTGPIO11
LRCKGPIO10
DSDINGPIO9
PA_Ctrl(功放芯片使能脚,高电平有效)GPIO53

ESP32-P4-WIFI6-Touch-LCD-4C es8311驱动使用了ES8311组件(该组件即将弃用,建议使用esp_codec_dev),使用时可以通过IDF Component Manager来添加。

idf.py add-dependency "espressif/es8311"
  1. 打开i2scodec工程,进行组件的添加

  2. 如上图所示,是添加组件的具体步骤
    1. 打开ESP-IDF Terminal。
    2. 在 Terminal 里将所需要的组件进行添加
    3. 成功添加后,在工程项目中的main文件夹中会多出一个idf_component.yml,此文件的作用已经在ESP-IDF工程目录章节说明过是用于管理项目组件的
    4. 打开后,可以看到已经添加上了espressif/es8311组件,在构建项目时,它们会被添加到项目中
  3. 接下来可以通过点击 打开设置,搜索Example,调整合适的音量

  4. 接上喇叭,可以直接通过点击编译、烧录、监视,完成后会在终端查看到如下结果,此时ESP32-P4-WIFI6-Touch-LCD-4C已经在播放音频了

  5. 当在设置中设置echo模式时,音频将由麦克风收录,扬声器输出

MIPI-DSI点屏示例

ESP32-P4-WIFI6-Touch-LCD-4C使用ESP32-P4NRW32芯片,具有以下新特性:

  • 符合MIPI-DSI协议,使用 D-PHY v1.1 版本,最高 2-lane x 1.5Gbps(共3Gbps)
  • 支持RGB888、RGB565、YUV422输入
  • 支持RGB888、RGB666、RGB565输出
  • 使用 video mode 输出视频流,支持输出固定图像 pattern

MIPI-DSI图像处理还可以使用2D-DMA控制器处理,支持PPA和JPEG编解码外设。

MIPI-DSI LCD驱动原理


所需硬件

  • ESP32-P4-WIFI6-Touch-LCD-4C

点屏步骤

  1. 打开工程后,选择esp32p4核心,接下来可以直接通过点击编译、烧录、监视,完成后可以查看屏幕已经点亮刷新色条了:


高级(Advanced)

本wiki不间断更新ESP32-P4示例程序,部分应用程序所需ESP-IDF版本依赖,需要一定时间测试更新,请耐心等待。

MIPI-CSI To MIPI-DSI(实时画面显示)

此示例演示如何使用 esp_driver_cam 组件捕获相机传感器信号并通过 DSI 接口显示它。此示例将通过ESP 摄像头传感器驱动程序esp_cam_sensor,并通过 CSI 接口捕获摄像头传感器信号并通过 DSI 接口显示。

所需硬件

  • OV5647摄像头
  • ESP32-P4-WIFI6-Touch-LCD-4C

运行步骤

  1. 将硬件进行连接
  2. 使用Type-C TO USB连接ESP32-P4-WIFI6-Touch-LCD-4C与主机
  3. 打开工程后,选择esp32p4核心,接下来可以直接通过点击编译、烧录、监视,完成后可以查看屏幕已经点亮刷新摄像头采集的画面了


LVGL HMI人机交互

本示例展示了ESP32-P4通过MIPI DSI接口将LVGL图像显示,可充分体现ESP32-P4强大的图像处理能力

所需硬件

  • ESP32-P4-WIFI6-Touch-LCD-4C

点屏步骤

  1. 打开工程后,选择esp32p4核心,接下来可以直接通过点击编译、烧录、监视,完成后可以查看屏幕:



windows拓展显示屏

本示例展示了ESP32-P4通过MIPI DSI接口、USB2.0 HS接口拓展windows显示屏,支持触摸、音频。可充分体现ESP32-P4强大的图像、USB2.0 HS、图像解码能力

所需硬件

  • ESP32-P4-WIFI6-Touch-LCD-4C
  • Type-A TO Type-A转接线
  • 扬声器

软件驱动

烧录运行效果


综合玩法(Expert Techniques)

本wiki不间断更新ESP32-P4示例程序,部分应用程序所需ESP-IDF Master版本依赖,需要一定时间测试更新,请耐心等待。

ESP-Phone

本示例基于 ESP_Brookesia,展示了一个类似 Android 的界面,其中包含许多不同的应用程序。该示例使用了开发板的 MIPI-DSI 接口、MIPI-CSI 接口、ESP32-C6、SD 卡和音频接口。基于此示例,可以基于 ESP_Brookesia 创建一个使用案例,从而高效开发多媒体应用程序。

所需硬件

  • OV5647或SC2336摄像头及排线
  • 8Ω 2W 喇叭
  • ESP32-P4-WIFI6-Touch-LCD-4C

点屏步骤

  1. 打开工程后,选择esp32p4核心,接下来可以直接通过点击编译、烧录、监视,完成后可以查看屏幕:



资料

原理图

示例程序

数据手册

软件


FAQ

技术支持

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841

TAG: ESP32-S3开发板 2.8寸圆形LCD显示屏480x480 触摸屏 板载加速度与陀螺仪QMI8658传感器/SD卡槽/电池接口/麦克风/RTC/MP3喇叭音频 适用于Arduino 2.8寸LCD电容触摸显示屏ST7789适用于Arduino树莓派ESP32 Pico CST328 RS232转CAN 加速度 树莓派 物联网继电器 树莓派Pico 2 RP2350 1.64寸AMOLED开发板QSPI显示触摸屏 280x456 板载QMI8658 IMU 树莓派5 PD诱导 工业级RS485转继电器 CAN逻辑分析仪 Argon ESP32 C6开发板1.47寸LCD显示屏172x320带RGB灯SD槽兼容Arduino DDSM115直驱伺服轮毂电机 一体化 RS485通信 网络模块免驱动 USB 3.2 Gen1 转千兆网口 即插即用 15.6寸双显示屏 笔记本电脑扩展屏 LCD 1080P 内置重力感应 喇叭 树莓派5 PCIE转NVME MPW7树莓派5 PCIE转WiFi7转接板MPW7适用于Google TPU BE200 AX210 RoArm-M2-S Python HTTP请求通信 树莓派0.96寸LCD ESP32-H2-MINI-1-N4模组