一、目的 最近从源地工作室购买了一块ESP32S3开发板(源地的便宜啊),如下图。 使用过ESP32模组的同学肯定见过下面的menuconfig菜单配置窗口用于配置Flash的相关参数 上图是ESP32模组中Flash的配置选项(SPI模式、时钟频率、Flash大小)。 其中关于SPImode的描述,请参考《理解ESP32Flash烧写的DOUT/DIO/QOUT/QIO配置》 关于如何准确获取自己手上的ESP32模组的flash大小,请参考《查看ESP32模组中Flash颗粒以及芯片信息》 那么如果我们使用的ESP32S3模组关于F
1.标准spi主从都在自己的数据线上发送/接收数据,主机如果需要接收数据,则需要单独发一段数据才能触发从机应答,从而接收从机数据CPOL时钟极性CPOL=0表示时钟空闲为低电平,下降沿采样CPOL=1表示时钟空闲为高电平,上升沿采样CPHA时钟相位CPHA=0表示从第一个跳变沿开始采样CPHA=1表示从第二个跳变沿开始采样根据CPOL和CPHA可以组合成四种spi模式。这个一般需要根据从机适配2.DUALSPI双线串行spi数据线相比标准spi也是两根线,区别标准spi就是再发数据时,无论主从都可以同时使用两个线发送数据,速度比标准spi快一倍。但是由于这种发送数据模式,只能做半双工通讯。DI
使用ESP32-S3N16R8报错E(185)quad_psram:PSRAMIDreaderror:0x00ffffffE(186)cpu_start:FailedtoinitexternalRAM!原因是ESP32-S3R8模块内置的RSRAM为八线模式PSRAM(OCTALMODEPSRAM)在menuconfig中配置menuconfig->Componentconfig->ESPPSRAM->Supportofexternal,SPI-connectedRAMmenuconfig->Componentconfig->ESPPSRAM->SPIRAMconfig->Mode(QUAD/
一、简介最近在调试STM32F103C8驱动墨水屏的实验,在使用过程中,需要使用大内存的RAM需要,由于C8T6的RAM空间只有20KB,而墨水屏的需要的内存为800*480*2/8=93.75KB。在网上查了相关的方案,都是使用STM32F103ZE外扩IS62WV51216这种并口SRAM的,使用IS62WV51216需要使用多引脚的STM32F103Zx系列,对于我这种使用背景,不需要上Zx系列,想查找下有没有串口的SRAM方案,但是并没有找到。网上有成熟的TM32F103Cx系列外扩W25Qxx芯片的方案,但是这是FLASH,不是RAM,也不是我想要的方案。所以干脆自己做个方案,找到了
前言最近在做一个基于ESP32的项目,ESP32虽然官方声称自带多达520KB的RAM,比起同价位的STM32可以说是十分良心。然而在做项目的时候发现,这520KB的RAM实际能用的其实没有想象中那么多,特别是ESP32在开启WiFi后会占掉这里面的一大部分。而且我的项目中有用到显示屏,那么这几百KB的RAM就更不够用了。经过我自己的测试,240X240的屏幕在LVGL并不能开启双缓冲全屏刷新。简单计算一下,不算其他的内存开销,实现240X240屏幕的双缓冲全屏刷新只需要240x240x(16/8)x2=230400B=225KB的RAM,只占了一半多一点而已。所以说如果想使用ESP32驱动大
前言最近项目需要买了一个ESP-WROVER-E模块,这个模块内置了一个4MB的PSRAM,对于需要大内存运行的场景非常友好。在我的项目中用到了LVGL这个第三方图形库,下面就讲一下如何最大化地在LVGL中使用这个PSRAM。教程在lv_conf.h文件中,找到下面的代码。/*1:usecustommalloc/free,0:usethebuilt-in`lv_mem_alloc()`and`lv_mem_free()`*/#defineLV_MEM_CUSTOM1#ifLV_MEM_CUSTOM==0/*Sizeofthememoryavailablefor`lv_mem_alloc()`i
前言最近项目需要买了一个ESP-WROVER-E模块,这个模块内置了一个4MB的PSRAM,对于需要大内存运行的场景非常友好。在我的项目中用到了LVGL这个第三方图形库,下面就讲一下如何最大化地在LVGL中使用这个PSRAM。教程在lv_conf.h文件中,找到下面的代码。/*1:usecustommalloc/free,0:usethebuilt-in`lv_mem_alloc()`and`lv_mem_free()`*/#defineLV_MEM_CUSTOM1#ifLV_MEM_CUSTOM==0/*Sizeofthememoryavailablefor`lv_mem_alloc()`i