【ESP32 S3开发】在Arduino IDE中使用PSRAM
一、前言
最近使用ESP32 WROOM开发语音识别项目时,需要使用阵列麦克风采集信号,并进行切片取出含有语音部分的片段,进而使用base64
编码将语音上传到后端服务器进行识别。
在项目开发时,发现虽然ESP32 WROOM有520KB的SRAM,但是还是无法满足语音识别的需求。
查找资料后,发现ESP32-S3N16R8带有8MB的PSRAM,下面记录ESP32-S3 PSRAM的配置与测试方法。
二、配置方法
ESP32-S3的开发板配置见之前的一篇笔记。
在Arduino IDE中配置完开发板后,还需要手动开启PSRAM功能,否则调用相关函数时会导致ESP32-S3无限重启。
打开Arduino IDE
选择
项目
-PSRAM
-OPI PSRAM
使用以下代码进行测试
#include <Arduino.h>
#include <Ticker.h>
#include <esp_heap_caps.h>// attach a LED to pPIO 21
#define LED_PIN 21Ticker blinker;
Ticker toggler;
Ticker changer;
float blinkerPace = 0.1; //seconds
const float togglePeriod = 5; //secondsvoid change() {blinkerPace = 1.5;
}void blink() {digitalWrite(LED_PIN, !digitalRead(LED_PIN));
}void toggle() {static bool isBlinking = false;if (isBlinking) {blinker.detach();isBlinking = false;}else {blinker.attach(blinkerPace, blink);isBlinking = true;}digitalWrite(LED_PIN, LOW); //make sure LED on on after toggling (pin LOW = led ON)
}void setup() {pinMode(LED_PIN, OUTPUT);toggler.attach(togglePeriod, toggle);changer.once(30, change);Serial.begin(115200);Serial.println("hello esp32");Serial.println(ESP.getFreeHeap());Serial.print("befor alloc:");Serial.println(heap_caps_get_free_size( MALLOC_CAP_SPIRAM ));void* ptrVal = NULL;ptrVal = heap_caps_malloc(1000, MALLOC_CAP_SPIRAM);char* sz_ptr = (char*)ptrVal;sprintf(sz_ptr, "%s", "hello spi ram..................\n");Serial.print(sz_ptr);Serial.print("after alloc:");Serial.println(heap_caps_get_free_size( MALLOC_CAP_SPIRAM ));heap_caps_free(ptrVal);sz_ptr = NULL;Serial.print("after release:");Serial.println(heap_caps_get_free_size( MALLOC_CAP_SPIRAM ));
}void loop() {}
- 打开
工具
-串口监视器
,使用RST按键重启ESP32-S3 - 观察串口监视器输出
可以看出,使用PSRAM后,RAM扩大到了8M左右
【ESP32 S3开发】在Arduino IDE中使用PSRAM相关推荐
- 【物联网(IoT)开发】Arduino IDE的工具开发板菜单中找到我的开发板型号怎么办?
Arduino IDE的工具>开发板菜单中找到我的开发板型号怎么办? 最近刚买的 WeMos D1 WiFi Arduino UNO 开发板ESP8266 连接电脑后,驱动也安装成功了,但是在A ...
- Wio RP2040无线WiFi迷你开发板Arduino IDE开发环境安装与使用基础
Arduino IDE作为一种开源硬件开发软件工具,目前拥有很好的应用生态和众多的用户,本文介绍Wio RP2040无线WiFi迷你开发板Arduino IDE环境安装与设置,并给出采用Arduino ...
- 【RISC-V】Hifive1开发板在Arduino IDE中的配置方法
. 操作系统: 建议使用Ubuntu 16.04 LTS,据说这是设计Hifive1开发板的公司 ...
- 安装 Arduino IDE 中STM32 软件包,ESP8266软件包
简 介: 搜集了更多的基于Arduino生态环境的安装和使用方法. 关键词: Arduino,STM32,ESP8266 §01 安装STM32在Arduino IDE软件包 1.参考文献1 参照推文 ...
- ESP8266 初级开发物联网--Arduino IDE+点灯科技
买来芯片背后有芯片的型号,和采用的驱动.我采用的是CH340驱动的ESP8266 NodeMcu. 芯片上密密麻麻的引脚我们并不是都要用到,在能力和需求范围内先不要关心太多. Serial是串口的意思 ...
- 【ESP32 S3 开发】基于I2S协议驱动INMP441数字麦克风 实现语音采集
一.前言 注意INMP441的 L/R接地之后才稳定输出数据 否则一直都是0 WAV格式介绍 WAV是一种存储声音波形的数字音频格式 WAV格式说明 这里主要是想说wav文件重要的就是生成一个wavh ...
- esp32 s3 USB OTG Arduino可以下载固件 USB COM不可以的解决方法
要想USB COM口下载固件, 方法就是按住boost键上电, 就能从 USB COM口用Arduino下载固件. USB OTG口可以直接下载固件.也还以为配置有问题, USB OTG USB CO ...
- 【arduino 问题记录】 psram: PSRAM ID read error: 0xffffffff
问题描述:采用ESP32-s将数据通过4G模块发送到阿里云的时候,只要数据一发送,esp32-s就一直重新连接4G模块. 图一中红色框就是我要传输到阿里云的内容,蓝色框显示的就是报错信息,接下来显示的 ...
- 如何用Arduino IDE开发9.9元的合宙LuatOS ESP32C3开发板?
如何用Arduino IDE开发9.9元的合宙LuatOS ESP32C3开发板? 合宙LuatOS ESP32C3-CORE开发板 简介 硬件准备 软件准备 1.安装串口驱动(CH343) 2.安装 ...
最新文章
- #6279. 数列分块入门 3(区间修改,查询权值前驱)
- Zabbix 监控Mysql 主从状态(Python脚本)
- 正则表达式和re模块知识点汇总
- php的wsgi框架结构,理解 WSGI 框架
- yarn、npm、cnpm三者区别
- IOS15 SVProgressHUD 报UIWindow 无法识别错误
- 【ArcGIS遇上Python】ArcGIS Python获取Shapefile矢量数据字段名称
- P3723-[AH2017/HNOI2017]礼物【FFT】
- hdu 4292 Food 最大流
- 腾讯牵线,美团欲37亿美元收购摩拜?
- pymysql 数据库操控
- Nginx的负载均衡 - 加权轮询 (Weighted Round Robin) 上篇
- Glide 4.0.0 RC0 使用详解
- 其实你的领导也有中年危机
- java连接数据库电商平台_Java数据库中台项目,电商,CMS轻松实现,包含数据库源文件...
- 推荐几款php探针,PHP探针推荐:检测服务器环境好帮手
- 不谋一时不足以谋一域_不谋万世者不足谋一时,不谋全局者不足谋一域是什么意思...
- layui 勾选不联动父项 树形控件_layui树形组件重现勾选过程的办法
- 【产业互联网周报】2019年我国软件业务收入71768亿元,同比增15.4%;亚马逊、谷歌先后发布财报,披露云计算业务增长...
- Ubuntu 下安装新世纪五笔输入法