> 文章列表 > 复刻笔记:ESP32桌面小电视内存不够用,Arduino 为开发板 ESP32 Dev Module 编译时出错。

复刻笔记:ESP32桌面小电视内存不够用,Arduino 为开发板 ESP32 Dev Module 编译时出错。

复刻笔记:ESP32桌面小电视内存不够用,Arduino 为开发板 ESP32 Dev Module 编译时出错。

1.ST7789驱动

(见文末 参考资料[2])

2. 电路图

(详细电路图略)

  1. 去掉CH340K下载电路,用串口转TTL下载工具下载;
  2. 去掉按键设置显示动画,重启配网等操作;

3.内存修改

复刻笔记:ESP32桌面小电视内存不够用,Arduino 为开发板 ESP32 Dev Module 编译时出错。

项目使用了 2880030 字节,占用了 (219%) 程序存储空间。最大为 1310720 字节。全局变量使用了45016字节,(13%)的动态内存,余留282664字节局部变量。最大为327680字节。项目太大了;阅读以下页面的提示减小文件大小。http://www.arduino.cc/en/Guide/Troubleshooting#size 为开发板 ESP32 Dev Module 编译时出错。

3.1 步骤

第一步:下图路径找到 boards.txt 文件

复刻笔记:ESP32桌面小电视内存不够用,Arduino 为开发板 ESP32 Dev Module 编译时出错。
第二步:内存分配文件

复刻笔记:ESP32桌面小电视内存不够用,Arduino 为开发板 ESP32 Dev Module 编译时出错。

首选的内存分配文件是default.csv ,可以看到app0的size参数是0x140000,转换成十进制则是1310720,简单换算下也就是1.3M左右。

复刻笔记:ESP32桌面小电视内存不够用,Arduino 为开发板 ESP32 Dev Module 编译时出错。

内存分配文件huge_app.csv

复刻笔记:ESP32桌面小电视内存不够用,Arduino 为开发板 ESP32 Dev Module 编译时出错。

复刻笔记:ESP32桌面小电视内存不够用,Arduino 为开发板 ESP32 Dev Module 编译时出错。
可以用下面提供的配置代码,在 boards.txt 文档内查找到三段代码的位置后,剪切到对应的位置即可。

esp32.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
esp32.menu.PartitionScheme.huge_app.build.partitions=huge_app
esp32.menu.PartitionScheme.huge_app.upload.maximum_size=3145728

注意:改完后记得保存,并且需要重启IED才会生效。

第三步:

复刻笔记:ESP32桌面小电视内存不够用,Arduino 为开发板 ESP32 Dev Module 编译时出错。

4. 复刻修改

4.1 WiFi.hostname()

WiFi.hostname() 设置新的WiFi 设备名老是报错,估计是新的库更新了,WiFiClass 类里没有hostname成员。

懒得纠结于此,索性注释掉后,编译成功。

4.2 其他修改

  1. 设置配网成功后开启广告,显示二维码;
  2. 设置主界面中间显示龙猫动画;

复刻笔记:ESP32桌面小电视内存不够用,Arduino 为开发板 ESP32 Dev Module 编译时出错。

首次使用,ESP32的NVS存储中并没有wifi数据,所以会自动进入Web配网模式,此时,打开手机,进入wifi设置,手机连接“桌面小电视”,随后会自动弹出配网页面,输入所处环境的wifi信息即可。

手机开热点什么的要注意ESP32-WROOM-32原生不支持5G频段

资料下载

  • 【CSDN】 程序源码:ST7789-ESP32左面小电视天气显示资料汇总

参考资料

  • [1] 内存不够用?ESP32环境下的Mixly如何修改内存分配?
  • [2] 【CSDN】ESP32 入门笔记08:1.54寸(240*240)彩色TFT 显示高清IPS LCD 屏幕 SPI接口
  • [3] 【嘉立创EDA开源硬件平台】ESP32桌面小电视_CH340K