esp32 控制 st7735s 显示屏(spi)

Lcd初始化后全屏为花屏,必须再把整个屏幕转成全底白色消除花屏后再显示图片,字符。

我理解为什么是花屏,因为只是初始化各个参数,显示内存现在还是为空,还没有执行0x2c命令。

图片

8f56675137e04fc889e4a1e561b6f901.jpg

 

#include "driver/spi_master.h"
#include "driver/gpio.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "string.h"

#define PIN_NUM_MOSI 12
#define PIN_NUM_CLK  13
#define PIN_NUM_CS   5
#define PIN_NUM_DC   19
#define PIN_NUM_RST  18

spi_device_handle_t spi;

void spi_init() {
    spi_bus_config_t buscfg = {
        .mosi_io_num = PIN_NUM_MOSI,
        .miso_io_num = -1,
        .sclk_io_num = PIN_NUM_CLK,
        .quadwp_io_num = -1,
        .quadhd_io_num = -1,
        .max_transfer_sz = 4096,
    };

    spi_bus_initialize(HSPI_HOST, &buscfg, 1);

    spi_dev
### eSPI Alert 1 技术文档与故障排除 #### eSPI协议概述 Embedded Serial Peripheral Interface (eSPI) 是一种串行接口标准,旨在替代传统的LPC总线。该协议提供了更高效的数据传输机制以及更低功耗的操作模式。对于嵌入式系统而言,eSPI不仅简化了硬件设计还提高了性能。 #### eSPI Alert信号说明 Alert信号是eSPI规范中的一个重要特性之一,在主机和外设之间传递异步事件通知。当发生特定类型的错误或其他需要注意的情况时,设备会通过拉低ALERT#引脚来向控制器报告异常状况[^1]。 #### 常见原因分析及排查方法 针对ESP32使用TFT_eSPI库遇到的问题,可能触发eSPI Alert 1的原因有: - **内存访问冲突** 如果程序试图执行非法存储器操作(如越界读取/写入),可能会引起处理器内部保护机制启动并发送中断请求给外部组件,进而激活alert线路。 - **初始化配置不当** 不正确的参数设置可能导致显示屏无法正常工作甚至进入不稳定状态而频繁重启。例如,某些情况下SPI频率过高会影响数据稳定性和完整性,造成显示乱码或空白等问题[^2]。 - **电源管理问题** 确保供电电压处于制造商推荐范围内非常重要;不足的电流供应也可能引发类似的警报条件。 为了有效定位具体成因,建议采取如下措施逐步验证假设: - 检查代码逻辑是否存在潜在缺陷; - 调整相关寄存器值至合理区间内测试效果变化; - 排除外界干扰因素影响,比如重新连接所有物理连线确认接触良好等。 #### 实际案例解析 在处理ESP32-S3-CAM配合ST7735S显示器出现白屏现象的过程中发现,适当降低SPI波特率可以显著改善通讯质量从而解决问题。这表明有时简单的调整就能带来意想不到的好转。 另外值得注意的是,不同型号间可能存在细微差异,因此官方提供的最新版固件更新往往包含了对已知漏洞修复和支持新特性的增强功能,及时升级有助于获得更好的兼容性和稳定性表现[^3]。 ```cpp // 设置较低的SPI速度作为临时解决方案尝试 #define TFT_SPI_FREQUENCY 2000000UL // 将默认值改为2MHz试试看是否有改观 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值