月度归档:2024年04月

ESP32S3 读取文件 jpg st7789显示

10_JPG_FILE_TO_RAM 348 8033040
10_JPG_RAM 4649 8027728
10_JPG_FILE 4663 7899792

解释:

读取10张JPG文件【320×240 平均10-20kb一张图片】 需要348ms

从内存中显示 JPG 10张 需要4649ms 【465ms/张】

从flash中读取JPG 10张需要4663ms 差距不明显【466ms/张】

如果投屏显示的话JPG文件相比rgb流不占优势毕竟解码时间太久,rgb流可以100ms左右

股票显示计划

功能 显示当前股票信息

查询模块,查询ID下股票信息并记录

用户填写,id,股票数,购入价(默认填写日当日开盘价)

显示股票信息:默认显示股票信息(按照涨幅排序,按照盈利排序,按照持有数排序)【名称 股价 涨幅 盈利情况】

ST7789 最好焊接+模组 +供电模块+type-c USB( 19-20 io)

Micropython ST7789 editor计划

使用st7789 进行显示文件,并进行编辑:

默认8×8字体,320×240为30行 每行40个字符

开始过程:打开一个文件,按行读取,默认将每行作为一个字典,默认读取总计240个字符,按行显示,只保存240个字符的显示 ,若改行大于240字符则显示前段 ,类似seek去选择显示的。

光标位置保存,[行号,字符位置号],若要操作则对相应的光标处修改

读取键盘上下左右 删除 插入 ,按下esc 进入操作界面,w  q wq qi dd yy 等vi编辑器操作指令

加入特殊指令 直接保存运行,类似F5,在本项目ESP32 PC中的第二块显示屏上使用。

字体切换 8×16 则15行每行40个字符, 切换数类似

自动化编译micropython固件计划

1 导入自定义的micropython模块
在对应的ports/esp8266/modules 下添加py模块,只能添加PY模块,可以是文件夹,但是只能py模块。
上传文件保存到该目录,并记下位置,编译完成后自动删除。【使用shell脚本】,干脆都放在固定的目录 如modules下的add_modules下面。

2 导入需要编译的c模块
cmake添加:将测试通过的c模块存在micropython项目同级目录下,通过在根目录添加一个micropython.cmake文件在编译时导入这个模块即可【需要自己先测试 目前ulab st7789可以兼容】【lvgl需要在未来测试】
存在问题:没有cmake的模块怎么办,如.c的文件 怎么加入?
比如说这个汉字:https://github.com/wangshujun-tj/mpy-Framebuf-boost-code

modframebuf.c 和 font_asc.h复制到extmod目录
然后直接按照原本的编译方式就可以工作了
https://github.com/wangshujun-tj/mpy-Framebuf-boost-code

失败 1.20 1.19版本可用,1.23无法通过编译

ESP32 ESP8266 micropython编译

Ubuntu 22.0.4系统下【请先安装python3.10-venv

1.ESP-IDF工具安装

git clone https://github.com/espressif/esp-idf.git
cd esp-idf
# git checkout v5.0.4
git submodule update --init --recursive

apt install python3.10-venv

cd esp-idf
./install.sh
source export.sh

#最后一步在进入编译前都得进行。 python >3.7

2.micropython源代码设置

git clone https://github.com/micropython/micropython.git
cd micropython
git submodule update --init --recursive

cd micropython
make -C mpy-cross
cd ports/esp32
make BOARD=ESP32_GENERIC_S3 clean
make submodules

make BOARD=ESP32_GENERIC_S3 
#make BOARD=ESP32_GENERIC_S3 USER_C_MODULES=../../../../micropython.cmake
#设置外部C编译模块,cmake的话 一个编译只能使用一个,但是可以将多个Cmake文件合成一个cmake就可以了。

注意路径上会多一个 ../ 上述模块其实micropython.cmake 和micropython文件夹同属一个目录
* micropython/ports/esp32 #在该目录执行命令
micropython.cmake
esp-idf

#需要使用的cmake在此处 原则上../../../micropython.cmake是../../../../micropython.cmake

3.添加其他C模块(cmake)编译【st7789 ulab】

#和micropython esp-idf 同级目录
git clone https://github.com/v923z/micropython-ulab.git ulab
git clone https://github.com/russhughes/st7789_mpy.git

#在该处创建micropython.cmake 文件,内容如下
include(${CMAKE_CURRENT_LIST_DIR}/ulab/code/micropython.cmake) include(${CMAKE_CURRENT_LIST_DIR}/st7789_mpy/st7789/micropython.cmake)


#最后的编译命令
make BOARD=ESP32_GENERIC_S3 USER_C_MODULES=../../../../micropython.cmake


ESP32S3 PSRAM

ESP32S3 编译 8MB PSRAM 16MBFlash N16R8