1 /**
2 * @file lv_st7735.c
3 *
4 */
5
6 /*********************
7 * INCLUDES
8 *********************/
9 #include "lv_st7735.h"
10
11 #if LV_USE_ST7735
12
13 /*********************
14 * DEFINES
15 *********************/
16
17 #define CMD_GAMSET 0x26
18
19 #define CMD_FRMCTR1 0xB1
20 #define CMD_FRMCTR2 0xB2
21 #define CMD_FRMCTR3 0xB3
22 #define CMD_INVCTR 0xB4
23 #define CMD_DISSET5 0xB6
24
25 #define CMD_PWCTR1 0xC0
26 #define CMD_PWCTR2 0xC1
27 #define CMD_PWCTR3 0xC2
28 #define CMD_PWCTR4 0xC3
29 #define CMD_PWCTR5 0xC4
30 #define CMD_VMCTR1 0xC5
31 #define CMD_VMOFCTR 0xC7
32
33 #define CMD_NVFCTR1 0xD9
34
35 #define CMD_GMCTRP1 0xE0
36 #define CMD_GMCTRN1 0xE1
37
38 #define CMD_PWCTR6 0xFC
39
40 /**********************
41 * TYPEDEFS
42 **********************/
43
44 /**********************
45 * STATIC PROTOTYPES
46 **********************/
47
48 /**********************
49 * STATIC CONSTANTS
50 **********************/
51
52 /* init commands for buydisplay.com ER-TFTM018-3 */
53 static const uint8_t init_cmd_list[] = {
54 0xB1, 3, 0x05, 0x3C, 0x3C,
55 0xB2, 3, 0x05, 0x3C, 0x3C,
56 0xB3, 6, 0x05, 0x3C, 0x3C, 0x05, 0x3C, 0x3C,
57 0xB4, 1, 0x03,
58 0xC0, 3, 0x28, 0x08, 0x04,
59 0xC1, 1, 0XC0,
60 0xC2, 2, 0x0D, 0x00,
61 0xC3, 2, 0x8D, 0x2A,
62 0xC4, 2, 0x8D, 0xEE,
63 0xC5, 1, 0x10,
64 0xE0, 16, 0x04, 0x22, 0x07, 0x0A, 0x2E, 0x30, 0x25, 0x2A, 0x28, 0x26, 0x2E, 0x3A, 0x00, 0x01, 0x03, 0x13,
65 0xE1, 16, 0x04, 0x16, 0x06, 0x0D, 0x2D, 0x26, 0x23, 0x27, 0x27, 0x25, 0x2D, 0x3B, 0x00, 0x01, 0x04, 0x13,
66 LV_LCD_CMD_DELAY_MS, LV_LCD_CMD_EOF
67 };
68
69 /**********************
70 * STATIC VARIABLES
71 **********************/
72
73 /**********************
74 * MACROS
75 **********************/
76
77 /**********************
78 * GLOBAL FUNCTIONS
79 **********************/
80
lv_st7735_create(uint32_t hor_res,uint32_t ver_res,lv_lcd_flag_t flags,lv_st7735_send_cmd_cb_t send_cmd_cb,lv_st7735_send_color_cb_t send_color_cb)81 lv_display_t * lv_st7735_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags,
82 lv_st7735_send_cmd_cb_t send_cmd_cb, lv_st7735_send_color_cb_t send_color_cb)
83 {
84 lv_display_t * disp = lv_lcd_generic_mipi_create(hor_res, ver_res, flags, send_cmd_cb, send_color_cb);
85 lv_lcd_generic_mipi_send_cmd_list(disp, init_cmd_list);
86 return disp;
87 }
88
lv_st7735_set_gap(lv_display_t * disp,uint16_t x,uint16_t y)89 void lv_st7735_set_gap(lv_display_t * disp, uint16_t x, uint16_t y)
90 {
91 lv_lcd_generic_mipi_set_gap(disp, x, y);
92 }
93
lv_st7735_set_invert(lv_display_t * disp,bool invert)94 void lv_st7735_set_invert(lv_display_t * disp, bool invert)
95 {
96 lv_lcd_generic_mipi_set_invert(disp, invert);
97 }
98
lv_st7735_set_gamma_curve(lv_display_t * disp,uint8_t gamma)99 void lv_st7735_set_gamma_curve(lv_display_t * disp, uint8_t gamma)
100 {
101 lv_lcd_generic_mipi_set_gamma_curve(disp, gamma);
102 }
103
lv_st7735_send_cmd_list(lv_display_t * disp,const uint8_t * cmd_list)104 void lv_st7735_send_cmd_list(lv_display_t * disp, const uint8_t * cmd_list)
105 {
106 lv_lcd_generic_mipi_send_cmd_list(disp, cmd_list);
107 }
108
109 /**********************
110 * STATIC FUNCTIONS
111 **********************/
112
113 #endif /*LV_USE_ST7735*/
114