Loading...
Searching...
No Matches

Detailed Description

#include "lcd.h"
+ Include dependency graph for st77xx.h:

Go to the source code of this file.

Data Structures

struct  st77xx_t
 Device descriptor for a ST77xx display. More...
 

Macros

#define CONFIG_ST7735_CUSTOM_CONFIG   0
 ST7735 Customized Configuration Enable.
 
#define CONFIG_ST7735_AVDD   4900
 ST7735 AVDD voltage (in millivolts)
 
#define CONFIG_ST7735_GVDD   4600
 ST7735 GVDD voltage (in millivolts)
 
#define CONFIG_ST7735_GVCL   -4600
 ST7735 GVL voltage (in millivolts)
 
#define CONFIG_ST7735_VCOM   -775
 ST7735 VCOM voltage (in millivolts)
 
#define CONFIG_ST7735_VGH   14700
 ST7735 VGH voltage (in millivolts)
 
#define CONFIG_ST7735_VGL   -10000
 ST7735 VGL voltage (in millivolts)
 
#define CONFIG_ST7789_CUSTOM_CONFIG   0
 ST7789 Customized Configuration Enable.
 
#define CONFIG_ST7789_AVDD   6800
 ST7789 AVDD voltage (in millivolts)
 
#define CONFIG_ST7789_AVCL   -4800
 ST7789 AVCL voltage (in millivolts)
 
#define CONFIG_ST7789_VCOM   900
 ST7789 VCOM voltage (in millivolts)
 
#define CONFIG_ST7789_VCOM_OFFSET   0
 ST7789 VCOM voltage offset (in millivolts)
 
#define CONFIG_ST7789_VDV   0
 ST7789 VDV voltage (in millivolts)
 
#define CONFIG_ST7789_VRH   4100
 ST7789 VRH voltage (in millivolts)
 
#define CONFIG_ST7796_CUSTOM_CONFIG   0
 ST7796 Customized Configuration Enable.
 
#define CONFIG_ST7796_AVDD   6600
 ST7796 AVDD voltage (in millivolts)
 
#define CONFIG_ST7796_AVCL   -4400
 ST7796 AVCL voltage (in millivolts)
 
#define CONFIG_ST7796_VCOM   1000
 ST7796 VCOM voltage (in millivolts)
 
#define CONFIG_ST7796_VCOM_OFFSET   0
 ST7796 VCOM voltage offset (in millivolts)
 
#define CONFIG_ST7796_VRH   4100
 ST7796 VRH voltage (in millivolts)
 

Enumerations

enum  { ST77XX_CNTRL_ST7735 , ST77XX_CNTRL_ST7789 , ST77XX_CNTRL_ST7796 }
 ST77xx display controller variants. More...
 

Variables

const lcd_driver_t lcd_st77xx_driver
 LCD device operations table.
 

ST77xx display rotation modes

Note
Using a rotation mode may require the definition of ST77XX_PARAM_OFFSET_X or ST77XX_PARAM_OFFSET_Y.

Usually the dimension of an LCD is defined by W x H (width x height) in pixels, where width is the smaller dimension than height, e.g. 240 x 320 (W x H). The height is then used as parameter ST77XX_PARAM_NUM_LINES and the width as parameter ST77XX_PARAM_RGB_CHANNELS. So vertical orientation means no rotation. Vertical orientation is given when the connector is shown at the bottom of the display.

For example, the ST7789 controller supports 320 gate outputs and 240 source outputs (RGB channels). A display with a size of 240 x 320 (W x H) pixels can be used by setting ST77XX_PARAM_NUM_LINES=320 and ST77XX_PARAM_RGB_CHANNELS=240.

However, if the ST7789 is used with a display of 240 x 240 (W x H) pixels and a rotation is used, an offset must be defined for X or Y because the origin of the image will change. For example, in the case of ST77XX_ROTATION_90 an offset for X would have to be defined by ST77XX_PARAM_OFFSET_X=80 and in the case of ST77XX_ROTATION_180 an offset for Y would have to be defined by ST77XX_PARAM_OFFSET_X=80.

Using the correct offset on rotation can be even more difficult if the display size in both dimensions is smaller than the size supported by the controller. In this case, the origin can deviate from 0, 0 even without rotation.

#define ST77XX_ROTATION_VERT   0
 Vertical mode.
 
#define ST77XX_ROTATION_VERT_FLIP
 Flipped vertical.
 
#define ST77XX_ROTATION_HORZ
 Horizontal mode.
 
#define ST77XX_ROTATION_HORZ_FLIP
 Horizontal flipped.
 
#define ST77XX_ROTATION_0   0
 0 deg counterclockwise
 
#define ST77XX_ROTATION_90
 90 deg counterclockwise
 
#define ST77XX_ROTATION_180
 180 deg counterclockwise
 
#define ST77XX_ROTATION_270
 270 deg counterclockwise