老王的0.96寸JDI-memory LCD
这一款是老王店里卖的一款JDI的低功耗无背光的LCD屏幕
接下来就教大家如何使用ESP32C3进行驱动点亮屏幕
col1 | col2 | col3 |
---|---|---|
![]() |
![]() |
![]() |

驱动方法
这里我们采用的是使用ESP32C3开发板来做
开发环境选择PlatformIO
首先安装库文件在ini文件中复制库的依赖
[env:airm2m_core_esp32c3]
platform = espressif32
board = airm2m_core_esp32c3
framework = arduino
upload_port = /dev/cu.wchusbserial556E0037891
monitor_speed = 115200
board_build.flash_mode = dio
lib_deps =
; bodmer/TFT_eSPI@^2.5.30
gbertaz/JDI_MIP_Display@^1.0.0
adafruit/Adafruit GFX Library@^1.11.9
等待安装完成后,接下来在.pio文件夹下找到配置文件进行修改如图
SCS配置为SPI的CS脚,DISP就是DI引脚
第二步修改SPI的初始化引脚,修改修改文件,看下图标识进行修改
说明: 第一个参数是SPI的CLK时钟,-1代表忽略, 第三个是SPI的数据输出MOSI
完成上面的修改步骤那么恭喜你完成了所有的配置,接下来复制下面的代码到你的main文件中烧录到你的ESP32中去吧。
#include <JDI_MIP_Display.h>
#define NUMBER_COLORS 8
const uint16_t colors[NUMBER_COLORS] = {COLOR_BLACK, COLOR_BLUE, COLOR_GREEN, COLOR_CYAN, COLOR_RED, COLOR_MAGENTA, COLOR_YELLOW, COLOR_WHITE};
JDI_MIP_Display jdi_display;
int rectHeight = jdi_display.height() / NUMBER_COLORS;
int rectWidth = jdi_display.width() / 2;
int startColor = 0;
int currentColor = 0;
int fps = 0;
unsigned int frames = 0;
unsigned long startMillis = 0;
void scrollingColors();
void setup() {
jdi_display.begin();
delay(50);
jdi_display.displayOn();
jdi_display.frontlightOn(); //Optional depending on the display model
jdi_display.clearScreen(); //Clear the screen
jdi_display.refresh(); //Actually updates the display
startMillis = millis();
}
void loop() {
scrollingColors();
// jdi_display.fillCircle(jdi_display.width() / 2, jdi_display.height() / 2, 60, COLOR_BLUE);
int xPos = 2;
int yPos = 2;
jdi_display.setTextColor(COLOR_BLACK, COLOR_WHITE);
jdi_display.setTextSize(2);
jdi_display.setCursor(xPos, yPos);
jdi_display.print("fps");
// if(fps >= 10) xPos -= 20;
jdi_display.setTextColor(COLOR_BLACK, COLOR_WHITE);
jdi_display.setTextSize(2);
jdi_display.setCursor(xPos, yPos + 17);
jdi_display.print(fps);
jdi_display.refresh(); //Actually updates the display
fps = frames / ((millis() - startMillis) / 1000);
frames++;
}
void scrollingColors(){
int y = 0;
currentColor = startColor;
for(int i = 0; i < NUMBER_COLORS; i++){
jdi_display.fillRect(0, y, rectWidth, rectHeight, colors[currentColor]);
y += rectHeight;
currentColor++;
if(currentColor > NUMBER_COLORS - 1) currentColor %= NUMBER_COLORS;
}
currentColor = startColor;
y = jdi_display.height() - rectHeight;
for(int i = 0; i < NUMBER_COLORS; i++){
jdi_display.fillRect(rectWidth, y, rectWidth, rectHeight, colors[currentColor]);
y -= rectHeight;
currentColor++;
if(currentColor > NUMBER_COLORS - 1) currentColor %= NUMBER_COLORS;
}
if(startColor < NUMBER_COLORS - 1) startColor++;
else startColor = 0;
}
结果可以看最顶部的效果图,座子的型号和原理图也在上面。
评论区