pure sdk for main

This commit is contained in:
divadiow
2025-08-27 09:51:58 +01:00
parent f0d033f1c9
commit 0571416e7c
3283 changed files with 1577720 additions and 1 deletions
+447
View File
@@ -0,0 +1,447 @@
#include "lib/lcd/lcd.h"
#if LCD_GC9503V_EN
#define CMD(x) {LCD_CMD,x}
#define DAT(x) {LCD_DAT,x}
#define DLY(x) {DELAY_MS,x}
#define END {LCD_TAB_END,LCD_TAB_END}
const uint8_t gc9503v_register_init_tab[][2] = {
#if 1
CMD(0x11),
DLY(250),
CMD(0xF0),DAT(0x55),DAT(0xaa),DAT(0x52),DAT(0x08),DAT(0x00),
DLY(10),CMD(0xF6),DAT(0x5a),DAT(0x87),
DLY(10),CMD(0xF0),DAT(0x55),DAT(0xaa),DAT(0x52),DAT(0x08),DAT(0x00),
DLY(10),CMD(0xF6),DAT(0x5a),DAT(0x87),
DLY(10),CMD(0xF6),DAT(0x5a),DAT(0x87),
CMD(0xC1),DAT(0x3F),
CMD(0xC2),DAT(0x0E),
CMD(0xC6),DAT(0xF8),
CMD(0xc9),DAT(0x10),
CMD(0xcD),DAT(0x25),
CMD(0x87),DAT(0x04),DAT(0x03),DAT(0x66),
CMD(0x86),DAT(0x99),DAT(0xa3),DAT(0xa3),DAT(0x31),
CMD(0xf8),DAT(0x8a),
CMD(0xac),DAT(0x45),
CMD(0xA7),DAT(0x47),
CMD(0xA0),DAT(0xcc),
CMD(0xa3),DAT(0x22),
CMD(0xFd),DAT(0x28),DAT(0x3c),DAT(0x00),
CMD(0x71),DAT(0x48),
CMD(0x72),DAT(0x48),
CMD(0x73),DAT(0x00),DAT(0x44),
CMD(0x97),DAT(0xdd),
CMD(0x83),DAT(0x93),
CMD(0x9A),DAT(0x80),
CMD(0x9B),DAT(0x58),
CMD(0x82),DAT(0x36),DAT(0x36),
CMD(0xFA),DAT(0x08),DAT(0x08),DAT(0x08),DAT(0x04),
CMD(0xB0),DAT(0x80),DAT(0x0E),DAT(0x0E),DAT(0x14),DAT(0x04),
CMD(0xB1),DAT(0x04),
CMD(0x7A),DAT(0x13),DAT(0x1A),
CMD(0x7B),DAT(0x13),DAT(0x1A),
#if 1
CMD(0x6D),DAT(0x1E),DAT(0x1E),DAT(0x1E),DAT(0x1D),DAT(0x00),DAT(0x07),DAT(0x01),DAT(0x1E),DAT(0x04),DAT(0x1F),DAT(0x0D),DAT(0x0F),DAT(0x09),DAT(0x0B),DAT(0x1E),DAT(0x1E),DAT(0x1E),DAT(0x1E),DAT(0x0C),DAT(0x0A),DAT(0x10),DAT(0x0E),DAT(0x1F),DAT(0x04),DAT(0x1E),DAT(0x02),DAT(0x08),DAT(0x00),DAT(0x1D),DAT(0x1E),DAT(0x1E),DAT(0x1E),
CMD(0x60),DAT(0x38),DAT(0x0c),DAT(0x2d),DAT(0x6d),DAT(0x38),DAT(0x0b),DAT(0x2d),DAT(0x6d),
CMD(0x61),DAT(0x18),DAT(0x02),DAT(0x2d),DAT(0x6d),DAT(0x78),DAT(0x18),DAT(0x2d),DAT(0x6d),
CMD(0x62),DAT(0x78),DAT(0x18),DAT(0x2d),DAT(0x6d),DAT(0x18),DAT(0x02),DAT(0x2d),DAT(0x6d),
CMD(0x63),DAT(0x38),DAT(0x0a),DAT(0x2d),DAT(0x6d),DAT(0x38),DAT(0x09),DAT(0x2d),DAT(0x6d),
CMD(0x64),DAT(0x38),DAT(0x08),DAT(0x02),DAT(0x80),DAT(0x03),DAT(0x03),DAT(0x38),DAT(0x07),DAT(0x02),DAT(0x81),DAT(0x03),DAT(0x03),DAT(0x2d),DAT(0x6d),DAT(0x2d),DAT(0x6d),
CMD(0x65),DAT(0x38),DAT(0x06),DAT(0x02),DAT(0x82),DAT(0x03),DAT(0x03),DAT(0x38),DAT(0x05),DAT(0x02),DAT(0x83),DAT(0x03),DAT(0x03),DAT(0x2d),DAT(0x6d),DAT(0x2d),DAT(0x6d),
CMD(0x66),DAT(0x38),DAT(0x04),DAT(0x02),DAT(0x84),DAT(0x03),DAT(0x03),DAT(0x38),DAT(0x03),DAT(0x02),DAT(0x85),DAT(0x03),DAT(0x03),DAT(0x2d),DAT(0x6d),DAT(0x2d),DAT(0x6d),
CMD(0x67),DAT(0x38),DAT(0x02),DAT(0x02),DAT(0x86),DAT(0x03),DAT(0x03),DAT(0x38),DAT(0x01),DAT(0x02),DAT(0x87),DAT(0x03),DAT(0x03),DAT(0x2d),DAT(0x6d),DAT(0x2d),DAT(0x6d),
#endif
CMD(0x69),DAT(0x14),DAT(0x22),DAT(0x14),DAT(0x22),DAT(0x14),DAT(0x22),DAT(0x08),
CMD(0x6b),DAT(0x07),
#if 1
CMD(0xD1),DAT(0x00),DAT(0x00),DAT(0x00),DAT(0x1D),DAT(0x00),DAT(0x4D),DAT(0x00),DAT(0x70),DAT(0x00),DAT(0x90),DAT(0x00),DAT(0xC3),DAT(0x00),DAT(0xE8),DAT(0x01),DAT(0x1B),DAT(0x01),DAT(0x4C),DAT(0x01),DAT(0xA2),DAT(0x01),DAT(0xE0),DAT(0x02),DAT(0x43),DAT(0x02),DAT(0x8E),DAT(0x02),DAT(0x90),DAT(0x02),DAT(0xD3),DAT(0x03),DAT(0x18),DAT(0x03),DAT(0x43),DAT(0x03),DAT(0x81),DAT(0x03),DAT(0xA4),DAT(0x03),DAT(0xBA),DAT(0x03),DAT(0xC9),DAT(0x03),DAT(0xDC),DAT(0x03),DAT(0xE7),DAT(0x03),DAT(0xF4),DAT(0x03),DAT(0xFC),DAT(0x03),DAT(0xFF),
CMD(0xD2),DAT(0x00),DAT(0x00),DAT(0x00),DAT(0x1D),DAT(0x00),DAT(0x4D),DAT(0x00),DAT(0x70),DAT(0x00),DAT(0x90),DAT(0x00),DAT(0xC3),DAT(0x00),DAT(0xE8),DAT(0x01),DAT(0x1B),DAT(0x01),DAT(0x4C),DAT(0x01),DAT(0xA2),DAT(0x01),DAT(0xE0),DAT(0x02),DAT(0x43),DAT(0x02),DAT(0x8E),DAT(0x02),DAT(0x90),DAT(0x02),DAT(0xD3),DAT(0x03),DAT(0x18),DAT(0x03),DAT(0x43),DAT(0x03),DAT(0x81),DAT(0x03),DAT(0xA4),DAT(0x03),DAT(0xBA),DAT(0x03),DAT(0xC9),DAT(0x03),DAT(0xDC),DAT(0x03),DAT(0xE7),DAT(0x03),DAT(0xF4),DAT(0x03),DAT(0xFC),DAT(0x03),DAT(0xFF),
CMD(0xD3),DAT(0x00),DAT(0x00),DAT(0x00),DAT(0x1D),DAT(0x00),DAT(0x4D),DAT(0x00),DAT(0x70),DAT(0x00),DAT(0x90),DAT(0x00),DAT(0xC3),DAT(0x00),DAT(0xE8),DAT(0x01),DAT(0x1B),DAT(0x01),DAT(0x4C),DAT(0x01),DAT(0xA2),DAT(0x01),DAT(0xE0),DAT(0x02),DAT(0x43),DAT(0x02),DAT(0x8E),DAT(0x02),DAT(0x90),DAT(0x02),DAT(0xD3),DAT(0x03),DAT(0x18),DAT(0x03),DAT(0x43),DAT(0x03),DAT(0x81),DAT(0x03),DAT(0xA4),DAT(0x03),DAT(0xBA),DAT(0x03),DAT(0xC9),DAT(0x03),DAT(0xDC),DAT(0x03),DAT(0xE7),DAT(0x03),DAT(0xF4),DAT(0x03),DAT(0xFC),DAT(0x03),DAT(0xFF),
CMD(0xD4),DAT(0x00),DAT(0x00),DAT(0x00),DAT(0x1D),DAT(0x00),DAT(0x4D),DAT(0x00),DAT(0x70),DAT(0x00),DAT(0x90),DAT(0x00),DAT(0xC3),DAT(0x00),DAT(0xE8),DAT(0x01),DAT(0x1B),DAT(0x01),DAT(0x4C),DAT(0x01),DAT(0xA2),DAT(0x01),DAT(0xE0),DAT(0x02),DAT(0x43),DAT(0x02),DAT(0x8E),DAT(0x02),DAT(0x90),DAT(0x02),DAT(0xD3),DAT(0x03),DAT(0x18),DAT(0x03),DAT(0x43),DAT(0x03),DAT(0x81),DAT(0x03),DAT(0xA4),DAT(0x03),DAT(0xBA),DAT(0x03),DAT(0xC9),DAT(0x03),DAT(0xDC),DAT(0x03),DAT(0xE7),DAT(0x03),DAT(0xF4),DAT(0x03),DAT(0xFC),DAT(0x03),DAT(0xFF),
CMD(0xD5),DAT(0x00),DAT(0x00),DAT(0x00),DAT(0x1D),DAT(0x00),DAT(0x4D),DAT(0x00),DAT(0x70),DAT(0x00),DAT(0x90),DAT(0x00),DAT(0xC3),DAT(0x00),DAT(0xE8),DAT(0x01),DAT(0x1B),DAT(0x01),DAT(0x4C),DAT(0x01),DAT(0xA2),DAT(0x01),DAT(0xE0),DAT(0x02),DAT(0x43),DAT(0x02),DAT(0x8E),DAT(0x02),DAT(0x90),DAT(0x02),DAT(0xD3),DAT(0x03),DAT(0x18),DAT(0x03),DAT(0x43),DAT(0x03),DAT(0x81),DAT(0x03),DAT(0xA4),DAT(0x03),DAT(0xBA),DAT(0x03),DAT(0xC9),DAT(0x03),DAT(0xDC),DAT(0x03),DAT(0xE7),DAT(0x03),DAT(0xF4),DAT(0x03),DAT(0xFC),DAT(0x03),DAT(0xFF),
CMD(0xD6),DAT(0x00),DAT(0x00),DAT(0x00),DAT(0x1D),DAT(0x00),DAT(0x4D),DAT(0x00),DAT(0x70),DAT(0x00),DAT(0x90),DAT(0x00),DAT(0xC3),DAT(0x00),DAT(0xE8),DAT(0x01),DAT(0x1B),DAT(0x01),DAT(0x4C),DAT(0x01),DAT(0xA2),DAT(0x01),DAT(0xE0),DAT(0x02),DAT(0x43),DAT(0x02),DAT(0x8E),DAT(0x02),DAT(0x90),DAT(0x02),DAT(0xD3),DAT(0x03),DAT(0x18),DAT(0x03),DAT(0x43),DAT(0x03),DAT(0x81),DAT(0x03),DAT(0xA4),DAT(0x03),DAT(0xBA),DAT(0x03),DAT(0xC9),DAT(0x03),DAT(0xDC),DAT(0x03),DAT(0xE7),DAT(0x03),DAT(0xF4),DAT(0x03),DAT(0xFC),DAT(0x03),DAT(0xFF),
#endif
CMD(0x3A),DAT(0x66),
DLY(200), CMD(0x11),DAT(0x00),
DLY(200), CMD(0x29),DAT(0x00),
END
#else
CMD(0x11),
DLY(250),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x13),
CMD(0xEF),
DAT(0x08),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x10),
CMD(0xC0),
DAT(0xE9),
DAT(0x03),
CMD(0xC1),
DAT(0x11),
DAT(0x02),
CMD(0xC2),
DAT(0x07),
DAT(0x06),
CMD(0xC3),
DAT(0x00),
CMD(0xCC),
DAT(0x18),
CMD(0xB0),
DAT(0x00),
DAT(0x0D),
DAT(0x14),
DAT(0x0D),
DAT(0x10),
DAT(0x05),
DAT(0x02),
DAT(0x08),
DAT(0x08),
DAT(0x1E),
DAT(0x05),
DAT(0x13),
DAT(0x11),
DAT(0xA3),
DAT(0x29),
DAT(0x18),
CMD(0xB1),
DAT(0x00),
DAT(0x0C),
DAT(0x14),
DAT(0x0C),
DAT(0x10),
DAT(0x05),
DAT(0x03),
DAT(0x08),
DAT(0x07),
DAT(0x20),
DAT(0x05),
DAT(0x13),
DAT(0x11),
DAT(0xA4),
DAT(0x29),
DAT(0x18),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x11),
CMD(0xB0),
DAT(0x6C),
CMD(0xB1),
DAT(0x8D),
CMD(0xB2),
DAT(0x89),
CMD(0xB3),
DAT(0x80),
CMD(0xB5),
DAT(0x4E),
CMD(0xB7),
DAT(0x85),
CMD(0xB8),
DAT(0x20),
CMD(0xB9),
DAT(0x00),
DAT(0x13),
CMD(0xC0),
DAT(0x09),
CMD(0xC1),
DAT(0x78),
CMD(0xC2),
DAT(0x78),
CMD(0xD0),
DAT(0x88),
CMD(0xE0),
DAT(0x00),
DAT(0x00),
DAT(0x02),
CMD(0xE1),
DAT(0x08),
DAT(0x00),
DAT(0x0A),
DAT(0x00),
DAT(0x07),
DAT(0x00),
DAT(0x09),
DAT(0x00),
DAT(0x00),
DAT(0x33),
DAT(0x33),
CMD(0xE2),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
CMD(0xE3),
DAT(0x00),
DAT(0x00),
DAT(0x33),
DAT(0x33),
CMD(0xE4),
DAT(0x44),
DAT(0x44),
CMD(0xE5),
DAT(0x0E),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
DAT(0x10),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
DAT(0x0A),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
DAT(0x0C),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
CMD(0xE6),
DAT(0x00),
DAT(0x00),
DAT(0x33),
DAT(0x33),
CMD(0xE7),
DAT(0x44),
DAT(0x44),
CMD(0xE8),
DAT(0x0D),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
DAT(0x0F),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
DAT(0x09),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
DAT(0x0B),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
CMD(0xEB),
DAT(0x02),
DAT(0x01),
DAT(0xE4),
DAT(0xE4),
DAT(0x44),
DAT(0x00),
DAT(0x40),
CMD(0xEC),
DAT(0x02),
DAT(0x01),
CMD(0xED),
DAT(0xAB),
DAT(0x89),
DAT(0x76),
DAT(0x54),
DAT(0x01),
DAT(0xFF),
DAT(0xFF),
DAT(0xFF),
DAT(0xFF),
DAT(0xFF),
DAT(0xFF),
DAT(0x10),
DAT(0x45),
DAT(0x67),
DAT(0x98),
DAT(0xBA),
CMD(0xEF),
DAT(0x08),
DAT(0x08),
DAT(0x08),
DAT(0x45),
DAT(0x3F),
DAT(0x54),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x13),
CMD(0xE8),
DAT(0x00),
DAT(0x0E),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x00),
CMD(0x11),
DAT(0x00),
DLY (120),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x13),
CMD(0xE8),
DAT(0x00),
DAT(0x0C),
DLY (10),
CMD(0xE8),
DAT(0x00),
DAT(0x00),
CMD(0xE6),
DAT(0x16),
DAT(0x7C),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x00),
/*
CMD(0xFF),//bist mode
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x12),
CMD(0xD1),
DAT(0x81),
CMD(0xD2),
DAT(0x06),//bist mode 0x00列灰阶分两半 02红03绿04蓝05白边框06棋盘格07黑底白像素网格08RGB彩条
*/
CMD(0x3A),
DAT(0x55),
CMD(0x29),
DAT(0x00),
DLY (20),
END
#endif
};
lcddev_t lcdstruct = {
.name = "gc9503v",
.lcd_bus_type = LCD_BUS_RGB,
.bus_width = LCD_BUS_WIDTH_18,
.color_mode = LCD_MODE_666,
.osd_scan_mode = LCD_ROTATE_90,
.scan_mode = LCD_ROTATE_90,//rotate 90 LCD_ROTATE_0
.te_mode = 0xff,//te mode, 0xff:disable
.colrarray = 0,//0:_RGB_ 1:_RBG_,2:_GBR_,3:_GRB_,4:_BRG_,5:_BGR_
.pclk = 20000000,
.even_order = 0,
.odd_order = 0,
.screen_w = 360,
.screen_h = 640,
.video_x = 0,
.video_y = 0,
.video_w = 360,
.video_h = 640,
.osd_x = 0,
.osd_y = 0,
.osd_w = 360, // 0 : value will set to video_w , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.osd_h = 640,// 0 : value will set to video_h , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.init_table = gc9503v_register_init_tab,
.pclk_inv = 1,
.vlw = 1,
.vbp = 14,
.vfp = 14,
.hlw = 1,
.hbp = 20,
.hfp = 4,
.de_inv = 0,
.hs_inv = 1,
.vs_inv = 1,
.de_en = 1,
.vs_en = 1,
.hs_en = 1,
};
#endif
+67
View File
@@ -0,0 +1,67 @@
#include "lib/lcd/lcd.h"
#if LCD_HX8282_EN
#define CMD(x) {LCD_CMD,x}
#define DAT(x) {LCD_DAT,x}
#define DLY(x) {DELAY_MS,x}
#define END {LCD_TAB_END,LCD_TAB_END}
const uint8_t hx8282_register_init_tab[][2] = {
END
};
lcddev_t lcdstruct = {
.name = "st7701s",
.lcd_bus_type = LCD_BUS_RGB,
.bus_width = LCD_BUS_WIDTH_18,
.color_mode = LCD_MODE_666,
.osd_scan_mode = LCD_ROTATE_0,
.scan_mode = LCD_ROTATE_0,//rotate 90
.te_mode = 0xff,//te mode, 0xff:disable
.colrarray = 0,//0:_RGB_ 1:_RBG_,2:_GBR_,3:_GRB_,4:_BRG_,5:_BGR_
.pclk = 48000000,
.even_order = 0,
.odd_order = 0,
.screen_w = 1024,
.screen_h = 600,
.video_x = 0,
.video_y = 0,
.video_w = 1024,
.video_h = 600,
.osd_x = 0,
.osd_y = 0,
.osd_w = 1024, // 0 : value will set to video_w , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.osd_h = 600, // 0 : value will set to video_h , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.init_table = NULL,
.pclk_inv = 1,
.vlw = 30,
.vbp = 22,
.vfp = 60,
.hlw = 8,
.hbp = 160,
.hfp = 160,
.de_inv = 0,
.hs_inv = 0,
.vs_inv = 0,
.de_en = 1,
.vs_en = 1,
.hs_en = 1,
};
#endif
+385
View File
@@ -0,0 +1,385 @@
#include "lib/lcd/lcd.h"
#if LCD_ST7701S_EN
#define CMD(x) {LCD_CMD,x}
#define DAT(x) {LCD_DAT,x}
#define DLY(x) {DELAY_MS,x}
#define END {LCD_TAB_END,LCD_TAB_END}
const uint8_t st7701s_register_init_tab[][2] = {
CMD(0x11),
DLY(250),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x13),
CMD(0xEF),
DAT(0x08),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x10),
CMD(0xC0),
DAT(0xE9),
DAT(0x03),
CMD(0xC1),
DAT(0x11),
DAT(0x02),
CMD(0xC2),
DAT(0x07),
DAT(0x06),
CMD(0xC3),
DAT(0x80),
CMD(0xCC),
DAT(0x18),
CMD(0xB0),
DAT(0x00),
DAT(0x0D),
DAT(0x14),
DAT(0x0D),
DAT(0x10),
DAT(0x05),
DAT(0x02),
DAT(0x08),
DAT(0x08),
DAT(0x1E),
DAT(0x05),
DAT(0x13),
DAT(0x11),
DAT(0xA3),
DAT(0x29),
DAT(0x18),
CMD(0xB1),
DAT(0x00),
DAT(0x0C),
DAT(0x14),
DAT(0x0C),
DAT(0x10),
DAT(0x05),
DAT(0x03),
DAT(0x08),
DAT(0x07),
DAT(0x20),
DAT(0x05),
DAT(0x13),
DAT(0x11),
DAT(0xA4),
DAT(0x29),
DAT(0x18),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x11),
CMD(0xB0),
DAT(0x6C),
CMD(0xB1),
DAT(0x4D),
CMD(0xB2),
DAT(0x89),
CMD(0xB3),
DAT(0x80),
CMD(0xB5),
DAT(0x4E),
CMD(0xB7),
DAT(0x85),
CMD(0xB8),
DAT(0x20),
CMD(0xB9),
DAT(0x00),
DAT(0x13),
CMD(0xC0),
DAT(0x09),
CMD(0xC1),
DAT(0x78),
CMD(0xC2),
DAT(0x78),
CMD(0xD0),
DAT(0x88),
CMD(0xE0),
DAT(0x00),
DAT(0x00),
DAT(0x02),
CMD(0xE1),
DAT(0x08),
DAT(0x00),
DAT(0x0A),
DAT(0x00),
DAT(0x07),
DAT(0x00),
DAT(0x09),
DAT(0x00),
DAT(0x00),
DAT(0x33),
DAT(0x33),
CMD(0xE2),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0x00),
CMD(0xE3),
DAT(0x00),
DAT(0x00),
DAT(0x33),
DAT(0x33),
CMD(0xE4),
DAT(0x44),
DAT(0x44),
CMD(0xE5),
DAT(0x0E),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
DAT(0x10),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
DAT(0x0A),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
DAT(0x0C),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
CMD(0xE6),
DAT(0x00),
DAT(0x00),
DAT(0x33),
DAT(0x33),
CMD(0xE7),
DAT(0x44),
DAT(0x44),
CMD(0xE8),
DAT(0x0D),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
DAT(0x0F),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
DAT(0x09),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
DAT(0x0B),
DAT(0x60),
DAT(0xA0),
DAT(0xA0),
CMD(0xEB),
DAT(0x02),
DAT(0x01),
DAT(0xE4),
DAT(0xE4),
DAT(0x44),
DAT(0x00),
DAT(0x40),
CMD(0xEC),
DAT(0x02),
DAT(0x01),
CMD(0xED),
DAT(0xAB),
DAT(0x89),
DAT(0x76),
DAT(0x54),
DAT(0x01),
DAT(0xFF),
DAT(0xFF),
DAT(0xFF),
DAT(0xFF),
DAT(0xFF),
DAT(0xFF),
DAT(0x10),
DAT(0x45),
DAT(0x67),
DAT(0x98),
DAT(0xBA),
CMD(0xEF),
DAT(0x08),
DAT(0x08),
DAT(0x08),
DAT(0x45),
DAT(0x3F),
DAT(0x54),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x13),
CMD(0xE8),
DAT(0x00),
DAT(0x0E),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x00),
CMD(0x11),
DAT(0x00),
DLY (120),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x13),
CMD(0xE8),
DAT(0x00),
DAT(0x0C),
DLY (10),
CMD(0xE8),
DAT(0x00),
DAT(0x00),
CMD(0xE6),
DAT(0x16),
DAT(0x7C),
CMD(0xFF),
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x00),
/*
CMD(0xFF),//bist mode
DAT(0x77),
DAT(0x01),
DAT(0x00),
DAT(0x00),
DAT(0x12),
CMD(0xD1),
DAT(0x81),
CMD(0xD2),
DAT(0x06),//bist mode 0x00列灰阶分两半 02红03绿04蓝05白边框06棋盘格07黑底白像素网格08RGB彩条
*/
CMD(0x3A),
DAT(0x55),
CMD(0x29),
DAT(0x00),
DLY (20),
END
};
lcddev_t lcdstruct = {
.name = "st7701s",
.lcd_bus_type = LCD_BUS_RGB,
.bus_width = LCD_BUS_WIDTH_16,
.color_mode = LCD_MODE_565,
.osd_scan_mode = LCD_ROTATE_90,
.scan_mode = LCD_ROTATE_90,//rotate 90
.te_mode = 0xff,//te mode, 0xff:disable
.colrarray = 0,//0:_RGB_ 1:_RBG_,2:_GBR_,3:_GRB_,4:_BRG_,5:_BGR_
.pclk = 20000000,
.even_order = 0,
.odd_order = 0,
.screen_w = 480,
.screen_h = 848,
.video_x = 0,
.video_y = 0,
.video_w = 480,
.video_h = 848,
.osd_x = 0,
.osd_y = 0,
.osd_w = 480, // 0 : value will set to video_w , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.osd_h = 848, // 0 : value will set to video_h , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.init_table = st7701s_register_init_tab,
.pclk_inv = 1,
.vlw = 10,
.vbp = 6,
.vfp = 10,
.hlw = 8,
.hbp = 8,
.hfp = 30,
.de_inv = 0,
.hs_inv = 1,
.vs_inv = 1,
.de_en = 1,
.vs_en = 1,
.hs_en = 1,
};
#endif
+173
View File
@@ -0,0 +1,173 @@
#include "lib/lcd/lcd.h"
#if LCD_ST7789V_EN
#define CMD(x) {LCD_CMD,x}
#define DAT(x) {LCD_DAT,x}
#define DLY(x) {DELAY_MS,x}
#define END {LCD_TAB_END,LCD_TAB_END}
uint8_t st7789_register_init_tab[][2] = {
//Sleep Out
CMD( 0x11),
DLY( 0x64),
//TEON,and Not consist of HBlanking
CMD( 0x35),
DAT( 0x00),
//Set Tear Scanline,when display 0th line,the TE output
CMD( 0x44),
DAT( 0x00),
DAT( 0x00),
//65K-color RGB interface,and 18bit/pixel
CMD( 0x3A),
DAT( 0x66), // 18bit/pixel DB[6:4]
CMD( 0x21),
CMD( 0xB0),
DAT( 0x11), //RGB mode
DAT( 0xF4), //6bit bus width 666 mode set RIM=1
CMD( 0xB1),
DAT( 0xe0), //RGB hv mode,vsync low active,hsync low active
DAT( 0x05), //vbp
DAT( 0x14), //hbp
//Porch Setting(set VBlank),back porch 8,front porch 8
CMD( 0xB2),
DAT( 0x08), //bpa
DAT( 0x08),
DAT( 0x00),
DAT( 0x22),
DAT( 0x22),
//Gate Control
CMD( 0xB7),
DAT( 0x35),
//-----------------Power Setting------------------
CMD( 0xBB),
DAT( 0x27),
CMD( 0xC0),
DAT( 0x2C),
CMD( 0xC2),
DAT( 0x01),
CMD( 0xC6),
DAT( 0x18),
CMD( 0xC6),
DAT( 0x0F),
CMD( 0xC4),
DAT( 0x20),
CMD( 0xC3),
DAT( 0x10),
CMD( 0xCA),
DAT( 0x0F),
CMD( 0xD0),
DAT( 0xA4),
DAT( 0xA1),
//-----------------Gamma Setting--------------------
CMD( 0xE0),
DAT( 0xD0),
DAT( 0x00),
DAT( 0x03),
DAT( 0x09),
DAT( 0x13),
DAT( 0x1C),
DAT( 0x3A),
DAT( 0x55),
DAT( 0x48),
DAT( 0x18),
DAT( 0x12),
DAT( 0x0E),
DAT( 0x20),
DAT( 0x1E),
CMD( 0xE1),
DAT( 0xD0),
DAT( 0x00),
DAT( 0x03),
DAT( 0x09),
DAT( 0x05),
DAT( 0x25),
DAT( 0x3A),
DAT( 0x55),
DAT( 0x50),
DAT( 0x3D),
DAT( 0x1C),
DAT( 0x1D),
DAT( 0x21),
DAT( 0x1E),
CMD( 0x36),
DAT( 0xC0),
DLY( 0X0F),
CMD( 0x11),
DLY( 0x64),
//Display on
CMD( 0x29),
DLY( 0X05),
//Memory Write
END
};
lcddev_t lcdstruct = {
.name = "st7789",
.lcd_bus_type = LCD_BUS_RGB,
.bus_width = LCD_BUS_WIDTH_6,
.color_mode = LCD_MODE_666,
.osd_scan_mode = LCD_ROTATE_90,
.scan_mode = LCD_ROTATE_90,//rotate 90
.te_mode = 0xff,//te mode, 0xff:disable
.colrarray = 0,//0:_RGB_ 1:_RBG_,2:_GBR_,3:_GRB_,4:_BRG_,5:_BGR_
.pclk = 15000000,
.even_order = 0,
.odd_order = 0,
.screen_w = 240,
.screen_h = 320,
.video_x = 0,
.video_y = 0,
.video_w = 240,
.video_h = 320,
.osd_x = 0,
.osd_y = 0,
.osd_w = 240, // 0 : value will set to video_w , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.osd_h = 320, // 0 : value will set to video_h , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.init_table = st7789_register_init_tab,
.pclk_inv = 1,
.vlw = 1,// 0,
.vbp = 0x04,// 12,
.vfp = 8,// 12,
.hlw = 4,// 1,
.hbp = 0x3c,//14,
.hfp = 12,//13,
.de_en = 1,
.vs_en = 1,
.hs_en = 1,
.de_inv = 0,
.hs_inv = 0,
.vs_inv = 0,
};
#endif
+196
View File
@@ -0,0 +1,196 @@
#include "lib/lcd/lcd.h"
#if LCD_ST7789V_MCU565_EN
#define CMD(x) {LCD_CMD,x}
#define DAT(x) {LCD_DAT,x}
#define DLY(x) {DELAY_MS,x}
#define END {LCD_TAB_END,LCD_TAB_END}
uint8_t st7789_register_init_tab[][2] = {
//Sleep Out
CMD( 0x11),
DLY( 0x64),
//TEON,and Not consist of HBlanking
CMD( 0x35),
DAT( 0x00),
//Set Tear Scanline,when display 0th line,the TE output
CMD( 0x44),
DAT( 0x00),
DAT( 0x00),
//65K-color RGB interface,and 18bit/pixel
CMD( 0x3A),
DAT( 0x05), // 16bit/pixel
CMD( 0x21),
#if 0
CMD( 0xB0),
DAT( 0x00), //RGB mode
DAT( 0xF4), //6bit bus width 666 mode
#endif
CMD( 0xB1),
DAT( 0x40), //RGB hv mode,vsync low active,hsync low active
DAT( 0x02), //vbp
DAT( 0x14), //hbp
//Porch Setting(set VBlank),back porch 8,front porch 8
CMD( 0xB2),
DAT( 0x08), //bpa
DAT( 0x08),
DAT( 0x00),
DAT( 0x22),
DAT( 0x22),
//Gate Control
CMD( 0xB7),
DAT( 0x35),
//-----------------Power Setting------------------
CMD( 0xBB),
DAT( 0x27),
CMD( 0xC0),
DAT( 0x2C),
CMD( 0xC2),
DAT( 0x01),
CMD( 0xC6),
DAT( 0x18),
CMD( 0xC6),
DAT( 0x0F),
CMD( 0xC4),
DAT( 0x20),
CMD( 0xC3),
DAT( 0x10),
CMD( 0xCA),
DAT( 0x0F),
CMD( 0xD0),
DAT( 0xA4),
DAT( 0xA1),
//-----------------Gamma Setting--------------------
CMD( 0xE0),
DAT( 0xD0),
DAT( 0x00),
DAT( 0x03),
DAT( 0x09),
DAT( 0x13),
DAT( 0x1C),
DAT( 0x3A),
DAT( 0x55),
DAT( 0x48),
DAT( 0x18),
DAT( 0x12),
DAT( 0x0E),
DAT( 0x20),
DAT( 0x1E),
CMD( 0xE1),
DAT( 0xD0),
DAT( 0x00),
DAT( 0x03),
DAT( 0x09),
DAT( 0x05),
DAT( 0x25),
DAT( 0x3A),
DAT( 0x55),
DAT( 0x50),
DAT( 0x3D),
DAT( 0x1C),
DAT( 0x1D),
DAT( 0x21),
DAT( 0x1E),
CMD( 0x36),
DAT( 0x00),
DLY( 0X0F),
CMD(0x2a),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0xef),
CMD(0x2b),
DAT(0x00),
DAT(0x00),
DAT(0x01),
DAT(0x3f),
CMD( 0x11),
DLY( 0x64),
//Display on
CMD( 0x29),
DLY( 0X05),
//Memory Write
CMD(0x2c), //启动写入
END
};
lcddev_t lcdstruct = {
.name = "st7789",
.lcd_bus_type = LCD_BUS_I80,
.bus_width = LCD_BUS_WIDTH_8,
.color_mode = LCD_MODE_565,
.osd_scan_mode = LCD_ROTATE_90,
.scan_mode = LCD_ROTATE_90,//rotate 90
.te_mode = 0xff,//te mode, 0xff:disable
.colrarray = 0,//0:_RGB_ 1:_RBG_,2:_GBR_,3:_GRB_,4:_BRG_,5:_BGR_
.pclk = 10000000,
.even_order = 0,
.odd_order = 0,
.screen_w = 240,
.screen_h = 320,
.video_x = 0,
.video_y = 0,
.video_w = 240,
.video_h = 320,
.osd_x = 0,
.osd_y = 0,
.osd_w = 240, // 0 : value will set to video_w , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.osd_h = 320, // 0 : value will set to video_h , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.init_table = st7789_register_init_tab,
.pclk_inv = 0,
.vlw = 0,// 0,
.vbp = 0,// 12,
.vfp = 0,// 12,
.hlw = 0,// 1,
.hbp = 0,//14,
.hfp = 0,//13,
.de_en = 0,
.vs_en = 0,
.hs_en = 0,
.de_inv = 0,
.hs_inv = 0,
.vs_inv = 0,
.signal_config.mcu.resev = 0,
.signal_config.mcu.wr_inv = 1,
.signal_config.mcu.rd_inv = 0,
.signal_config.mcu.cs_inv = 0,
.signal_config.mcu.dc_inv = 1,
};
#endif
+198
View File
@@ -0,0 +1,198 @@
#include "lib/lcd/lcd.h"
#if LCD_ST7789V_MCU666_EN
#define CMD(x) {LCD_CMD,x}
#define DAT(x) {LCD_DAT,x}
#define DLY(x) {DELAY_MS,x}
#define END {LCD_TAB_END,LCD_TAB_END}
uint8_t st7789_register_init_tab[][2] = {
//Sleep Out
CMD( 0x11),
DLY( 0x64),
//TEON,and Not consist of HBlanking
CMD( 0x35),
DAT( 0x00),
//Set Tear Scanline,when display 0th line,the TE output
CMD( 0x44),
DAT( 0x00),
DAT( 0x00),
//65K-color RGB interface,and 18bit/pixel
CMD( 0x3A),
DAT( 0x06), // 16bit/pixel
CMD( 0x21),
#if 0
CMD( 0xB0),
DAT( 0x00), //RGB mode
DAT( 0xF4), //6bit bus width 666 mode
#endif
CMD( 0xB1),
DAT( 0x40), //RGB hv mode,vsync low active,hsync low active
DAT( 0x02), //vbp
DAT( 0x14), //hbp
//Porch Setting(set VBlank),back porch 8,front porch 8
CMD( 0xB2),
DAT( 0x08), //bpa
DAT( 0x08),
DAT( 0x00),
DAT( 0x22),
DAT( 0x22),
//Gate Control
CMD( 0xB7),
DAT( 0x35),
//-----------------Power Setting------------------
CMD( 0xBB),
DAT( 0x27),
CMD( 0xC0),
DAT( 0x2C),
CMD( 0xC2),
DAT( 0x01),
CMD( 0xC6),
DAT( 0x18),
CMD( 0xC6),
DAT( 0x0F),
CMD( 0xC4),
DAT( 0x20),
CMD( 0xC3),
DAT( 0x10),
CMD( 0xCA),
DAT( 0x0F),
CMD( 0xD0),
DAT( 0xA4),
DAT( 0xA1),
//-----------------Gamma Setting--------------------
CMD( 0xE0),
DAT( 0xD0),
DAT( 0x00),
DAT( 0x03),
DAT( 0x09),
DAT( 0x13),
DAT( 0x1C),
DAT( 0x3A),
DAT( 0x55),
DAT( 0x48),
DAT( 0x18),
DAT( 0x12),
DAT( 0x0E),
DAT( 0x20),
DAT( 0x1E),
CMD( 0xE1),
DAT( 0xD0),
DAT( 0x00),
DAT( 0x03),
DAT( 0x09),
DAT( 0x05),
DAT( 0x25),
DAT( 0x3A),
DAT( 0x55),
DAT( 0x50),
DAT( 0x3D),
DAT( 0x1C),
DAT( 0x1D),
DAT( 0x21),
DAT( 0x1E),
CMD( 0x26),
DAT( 0x01),
CMD( 0x36),
DAT( 0x00),
DLY( 0X0F),
CMD(0x2a),
DAT(0x00),
DAT(0x00),
DAT(0x00),
DAT(0xef),
CMD(0x2b),
DAT(0x00),
DAT(0x00),
DAT(0x01),
DAT(0x3f),
CMD( 0x11),
DLY( 0x64),
//Display on
CMD( 0x29),
DLY( 0X05),
//Memory Write
CMD(0x2c), //启动写入
END
};
lcddev_t lcdstruct = {
.name = "st7789",
.lcd_bus_type = LCD_BUS_I80,
.bus_width = LCD_BUS_WIDTH_8,
.color_mode = LCD_MODE_666,
.osd_scan_mode = LCD_ROTATE_90,
.scan_mode = LCD_ROTATE_90,//rotate 90
.te_mode = 0xff,//te mode, 0xff:disable
.colrarray = 0,//0:_RGB_ 1:_RBG_,2:_GBR_,3:_GRB_,4:_BRG_,5:_BGR_
.pclk = 10000000,
.even_order = 0,
.odd_order = 0,
.screen_w = 240,
.screen_h = 320,
.video_x = 0,
.video_y = 0,
.video_w = 240,
.video_h = 320,
.osd_x = 0,
.osd_y = 0,
.osd_w = 240, // 0 : value will set to video_w , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.osd_h = 320, // 0 : value will set to video_h , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
.init_table = st7789_register_init_tab,
.pclk_inv = 0,
.vlw = 0,// 0,
.vbp = 0,// 12,
.vfp = 0,// 12,
.hlw = 0,// 1,
.hbp = 0,//14,
.hfp = 0,//13,
.de_en = 0,
.vs_en = 0,
.hs_en = 0,
.de_inv = 0,
.hs_inv = 0,
.vs_inv = 0,
.signal_config.mcu.resev = 0,
.signal_config.mcu.wr_inv = 1,
.signal_config.mcu.rd_inv = 0,
.signal_config.mcu.cs_inv = 0,
.signal_config.mcu.dc_inv = 1,
};
#endif