static int init_display(struct fbtft_par *par) { // 初始化 LCD 显示参数的函数,传入参数为设备信息结构体指针 write_reg(par, MIPI_DCS_EXIT_SLEEP_MODE); // 发送唤醒命令,将 LCD 显示屏从睡眠模式中唤醒 mdelay(120); // 延时 120 毫秒 write_reg(par, MIPI_DCS_SET_PIXEL_FORMAT, MIPI_DCS_PIXEL_FMT_16BIT); // 设置像素格式为 RGB-565 write_reg(par, PORCTRL, 0x08, 0x08, 0x00, 0x22, 0x22); // 配置 PORCTRL 寄存器,用于设置 LCD 的时序控制 write_reg(par, GCTRL, 0x35); // 配置 GCTRL 寄存器,用于设置液晶驱动电压 write_reg(par, VDVVRHEN, 0x01, 0xFF); // 配置 VDVVRHEN 寄存器,用于设置 VDV 和 VRH 寄存器值的来源 write_reg(par, VRHS, 0x0B); // 配置 VRHS 寄存器,用于设置 VAP 和 VAN 的电压 write_reg(par, VDVS, 0x20); // 配置 VDVS 寄存器,用于设置 VDV 的电压 write_reg(par, VCOMS, 0x20); // 配置 VCOMS 寄存器,用于设置 VCOM 的电压 write_reg(par, VCMOFSET, 0x20); // 配置 VCMOFSET 寄存器,用于设置 VCOM offset 的值 write_reg(par, PWCTRL1, 0xA4, 0xA1); // 配置 PWCTRL1 寄存器,用于设置 AVDD、AVCL 和 VDS 的电压值 write_reg(par, MIPI_DCS_SET_DISPLAY_ON); // 发送打开命令,将 LCD 显示屏打开 return 0; // 返回 0,表示函数执行成功 }我使用这段代码初始化st7789后发现黑色和白色调转了怎么解决
时间: 2024-03-23 16:36:32 浏览: 48
你可以尝试修改像素格式为 RGB-565 反转,即将 MIPI_DCS_PIXEL_FMT_16BIT 改为 MIPI_DCS_PIXEL_FMT_16BIT_REV,代码如下:
```
write_reg(par, MIPI_DCS_SET_PIXEL_FORMAT, MIPI_DCS_PIXEL_FMT_16BIT_REV); // 设置像素格式为 RGB-565 反转
```
如果还是不能解决问题,可能需要检查硬件连接,或者根据具体的 LCD 显示屏型号查找相应的初始化参数进行调整。
阅读全文