Display_Lib_RPI 2.3.0
A C++ Library to connect electronic displays to Linux single board computers.
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
ST7735_TFT Class Reference

Class to control ST7735 TFT basic functionality. More...

#include <ST7735_TFT_LCD_RDL.hpp>

Inheritance diagram for ST7735_TFT:
Inheritance graph
[legend]

Public Types

enum  TFT_modes_e : uint8_t {
  TFT_Normal_mode = 0 , TFT_Partial_mode , TFT_Idle_mode , TFT_Sleep_mode ,
  TFT_Invert_mode , TFT_Display_on_mode , TFT_Display_off_mode
}
 
enum  TFT_PCBtype_e : uint8_t { TFT_ST7735R_Red = 0 , TFT_ST7735R_Green , TFT_ST7735S_Black , TFT_ST7735B }
 
- Public Types inherited from color16_graphics
enum  pixel_color565_e : uint16_t {
  RDLC_BLACK = 0x0000 , RDLC_BLUE = 0x001F , RDLC_RED = 0xF800 , RDLC_GREEN = 0x07E0 ,
  RDLC_CYAN = 0x07FF , RDLC_MAGENTA = 0xF81F , RDLC_YELLOW = 0xFFE0 , RDLC_WHITE = 0xFFFF ,
  RDLC_TAN = 0xED01 , RDLC_GREY = 0x9CD1 , RDLC_BROWN = 0x6201 , RDLC_DGREEN = 0x01C0 ,
  RDLC_ORANGE = 0xFC00 , RDLC_NAVY = 0x000F , RDLC_DCYAN = 0x03EF , RDLC_MAROON = 0x7800 ,
  RDLC_PURPLE = 0x780F , RDLC_OLIVE = 0x7BE0 , RDLC_LGREY = 0xC618 , RDLC_DGREY = 0x7BEF ,
  RDLC_GYELLOW = 0xAFE5 , RDLC_PINK = 0xFC18 , RDLC_LBLUE = 0x7E5F , RDLC_BEIGE = 0xB5D2
}
 16-bit color definitions (RGB565 format). More...
 
enum  display_rotate_e : uint8_t { Degrees_0 = 0 , Degrees_90 , Degrees_180 , Degrees_270 }
 
- Public Types inherited from Print
enum  BaseNum : uint8_t { RDL_DEC = 10 , RDL_HEX = 16 , RDL_OCT = 8 , RDL_BIN = 2 }
 

Public Member Functions

 ST7735_TFT ()
 Constructor for class ST7735_TFT.
 
virtual void setAddrWindow (uint16_t, uint16_t, uint16_t, uint16_t) override
 SPI displays set an address window rectangle for blitting pixels.
 
void TFTSetupGPIO (int8_t, int8_t, int8_t, int8_t, int8_t)
 sets up TFT GPIO for software SPI
 
void TFTSetupGPIO (int8_t, int8_t)
 sets up TFT GPIO for Hardware SPi
 
void TFTInitScreenSize (uint8_t xOffset, uint8_t yOffset, uint16_t w, uint16_t h)
 initialise the variables that define the size of the screen
 
rdlib::Return_Codes_e TFTInitPCBType (TFT_PCBtype_e pcbType, uint16_t CommDelay, int gpioDev)
 intialise PCBtype and SPI, Software SPI
 
rdlib::Return_Codes_e TFTInitPCBType (TFT_PCBtype_e pcbType, int device, int channel, int speed, int flags, int gpioDev)
 intialise PCBtype and SPI, Hardware SPI
 
uint16_t HighFreqDelayGet (void)
 Freq delay used in SW SPI getter, uS delay used in SW SPI method.
 
void HighFreqDelaySet (uint16_t)
 Freq delay used in SW SPI setter, uS delay used in SW SPI method.
 
rdlib::Return_Codes_e TFTPowerDown (void)
 Call when powering down TFT.
 
rdlib::Return_Codes_e TFTResetPin (void)
 Method for Hardware Reset pin control.
 
void TFTsetRotation (display_rotate_e r)
 : change rotation of display.
 
void TFTchangeInvertMode (bool invertModeOn)
 Toggle the invert mode.
 
void TFTchangeMode (TFT_modes_e m)
 This changes the mode of the display as:
 
void TFTsetScrollDefinition (uint8_t th, uint8_t tb, bool sd)
 This method defines the Vertical Scrolling Area of the display where:
 
void TFTVerticalScroll (uint8_t vsp)
 : This method is used together with the TFTsetScrollDefinition.
 
- Public Member Functions inherited from color16_graphics
 color16_graphics ()
 Construct a new graphics class object.
 
void fillScreen (uint16_t color)
 Fills the whole screen with a given color.
 
void setCursor (int16_t x, int16_t y)
 Set the Cursor Position on screen.
 
void drawPixel (uint16_t, uint16_t, uint16_t)
 Draw a pixel to screen.
 
rdlib::Return_Codes_e drawDotGrid (int16_t x, int16_t y, int16_t w, int16_t h, uint8_t DotGridGap, uint16_t color)
 Draws a grid of dots on the screen starting from the given coordinates. This function draws a grid of pixels with a specified gap between them. It checks that the provided coordinates and dimensions are within the screen bounds and adjusts them if necessary. It also validates The grid of dots gap value and defaults it to 2 if invalid.
 
void drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color)
 draws a line from (x0,y0) to (x1,y1).
 
rdlib::Return_Codes_e drawFastVLine (uint16_t x, uint16_t y, uint16_t h, uint16_t color)
 Draws a vertical line starting at (x,y) with height h.
 
rdlib::Return_Codes_e drawFastHLine (uint16_t x, uint16_t y, uint16_t w, uint16_t color)
 Draws a horizontal line starting at (x,y) with width w.
 
void drawLineAngle (int16_t x, int16_t y, int angle, uint8_t start, uint8_t length, int offset, uint16_t color)
 Draws a line using an angle and length as parameters. This function draws a line starting from (x, y), extending in the direction specified by angle, with a given length. The function also allows applying an offset to the angle before computing the line’s end coordinates.
 
void drawRectWH (uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color)
 draws rectangle at (x,y) where h is height and w is width of the rectangle.
 
rdlib::Return_Codes_e fillRectangle (uint16_t, uint16_t, uint16_t, uint16_t, uint16_t)
 fills a rectangle starting from coordinates (x,y) with width of w and height of h.
 
void fillRect (uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color)
 fills a rectangle at (x,y) where h is height and w is width of the rectangle.
 
void drawRoundRect (uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t r, uint16_t color)
 draws a rectangle with rounded edges
 
void fillRoundRect (uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t r, uint16_t color)
 Fills a rectangle with rounded edges.
 
void drawCircle (int16_t x0, int16_t y0, int16_t r, uint16_t color)
 draws a circle where (x0,y0) are center coordinates an r is circle radius.
 
void fillCircle (int16_t x0, int16_t y0, int16_t r, uint16_t color)
 fills a circle where (x0,y0) are center coordinates an r is circle radius.
 
void drawEllipse (int16_t cx, int16_t cy, int16_t semiMajorAxis, int16_t semiMinorAxis, bool fill, uint16_t color)
 Draw an ellipse on the display. This function uses the midpoint ellipse algorithm to efficiently draw an ellipse centered at (cx, cy) with the given semi-major (horizontal) and semi-minor (vertical) axes.
 
void drawTriangle (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)
 draws a triangle of coordinates (x0,y0), (x1,y1) and (x2,y2).
 
void fillTriangle (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)
 Fills a triangle of coordinates (x0,y0), (x1,y1) and (x2,y2).
 
void drawQuadrilateral (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3, uint16_t color)
 Draws a quadrilateral (four-sided polygon) by connecting four points with lines. This function draws a quadrilateral by drawing four lines between the given vertices. The lines are drawn in the order: (x0, y0) to (x1, y1), (x1, y1) to (x2, y2), (x2, y2) to (x3, y3), and finally (x3, y3) back to (x0, y0).
 
void fillQuadrilateral (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3, uint16_t color, bool useTriangleSplit=true)
 Fills a quadrilateral with the specified color using triangles. This function fills a quadrilateral by dividing it into triangles and filling them individually. The quadrilateral is filled by calling the fillTriangle function three times with appropriate vertex coordinates. The useTriangleSplit parameter determines whether the quadrilateral is divided into two triangles or if only one triangle is used.
 
rdlib::Return_Codes_e drawPolygon (int16_t x, int16_t y, uint8_t sides, int16_t diameter, float rotation, bool fill, uint16_t color)
 Draws a polygon with a specified number of sides, diameter, rotation, and color. This function draws a regular polygon by connecting points equally spaced around a circle, with each point having a distance defined by the diameter. The polygon is rotated by the given angle (in degrees) before being drawn. The number of sides is enforced to be at least 3.
 
void drawSimpleArc (int16_t cx, int16_t cy, int16_t radius, float startAngle, float endAngle, uint16_t color)
 Draw a simple arc of one pixel on the display( no offsets , thickness or maximum arc calculations) This function draws an arc between two angles (start and end) on a circle with a given radius.
 
void drawArc (uint16_t cx, uint16_t cy, uint16_t radius, uint16_t thickness, float startAngle, float endAngle, uint16_t color)
 Draw an arc on the TFT display. This function draws an arc between two angles (start and end) on a circle with a given radius.
 
float getArcAngleMax () const
 Get the current maximum angle of the arc.
 
void setArcAngleMax (float arcAngleMax)
 Set a new maximum angle for the arc.
 
int getArcAngleOffset () const
 Get the current angle offset.
 
void setArcAngleOffset (int arcAngleOffset)
 Set a new angle offset.
 
virtual size_t write (uint8_t) override
 write method used in the print class when user calls print
 
rdlib::Return_Codes_e writeChar (int16_t x, int16_t y, char value)
 Write 1 character on Display.
 
rdlib::Return_Codes_e writeCharString (int16_t x, int16_t y, char *text)
 Write Text character array on display.
 
void setTextWrap (bool w)
 turn on or off screen wrap of the text (fonts 1-6)
 
void setTextColor (uint16_t c, uint16_t bg)
 Set text color foreground and background.
 
void setTextColor (uint16_t c)
 Set text color foreground.
 
rdlib::Return_Codes_e drawIcon (uint16_t x, uint16_t y, uint16_t w, uint16_t color, uint16_t bgcolor, const std::span< const uint8_t > data)
 Draws an custom Icon of X by 8 size to screen , where X = 0 to 127.
 
rdlib::Return_Codes_e drawBitmap (uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color, uint16_t bgcolor, const std::span< const uint8_t > data)
 : Draws an bi-color bitmap to screen
 
rdlib::Return_Codes_e drawBitmap24 (uint16_t x, uint16_t y, const std::span< const uint8_t > data, uint16_t w, uint16_t h)
 Draws an 24 bit color bitmap to screen from a data array.
 
rdlib::Return_Codes_e drawBitmap16 (uint16_t x, uint16_t y, const std::span< const uint8_t > data, uint16_t w, uint16_t h)
 : Draws an 16 bit color bitmap to screen from a data array
 
rdlib::Return_Codes_e drawSprite (uint16_t x, uint16_t y, const std::span< const uint8_t > data, uint16_t w, uint16_t h, uint16_t backgroundColor)
 : Draws an 16 bit color sprite bitmap to screen with transparent background
 
int16_t Color565 (int16_t, int16_t, int16_t)
 : Convert: 24-bit color to 565 16-bit color
 
int getDisplaySPIBlockSize () const
 Gets the maximum SPI transaction block size.
 
void setDisplaySPIBlockSize (int size)
 Sets the maximum SPI transaction block size.
 
- Public Member Functions inherited from display_Fonts
 display_Fonts ()
 init the OLED font class object constructor
 
rdlib::Return_Codes_e setFont (display_Font_name_e)
 SetFont.
 
void setInvertFont (bool invertStatus)
 setInvertFont
 
bool getInvertFont (void)
 getInvertFont
 
- Public Member Functions inherited from Print
int getWriteError ()
 gets the error flag status, zero no error
 
void clearWriteError ()
 clears the error flag by setting it to zero
 
virtual size_t write (const uint8_t *buffer, size_t size)
 define in the sub class
 
size_t write (const char *str)
 Writes a string to the output.
 
size_t write (const char *buffer, size_t size)
 Writes a buffer of a specified size to the output.
 
virtual int availableForWrite ()
 define in the sub class
 
size_t print (const char[])
 print an array
 
size_t print (char)
 print an character
 
size_t print (int, int=RDL_DEC)
 print an integer of base number system
 
size_t print (unsigned int, int=RDL_DEC)
 print an unsigned integer of base number system
 
size_t print (long, int=RDL_DEC)
 print an long integer of base number system
 
size_t print (unsigned long, int=RDL_DEC)
 print an unsigned long integer of base number system
 
size_t print (double, int=2)
 print an double
 
size_t print (const std::string &)
 print an C++ string object
 
size_t println (const char[])
 Prints a character array followed by a newline.
 
size_t println (char)
 print an character followed by new line
 
size_t println (int, int=RDL_DEC)
 print an integer of base number system followed by new line
 
size_t println (unsigned int, int=RDL_DEC)
 print an unsigned integer of base number system followed by new line
 
size_t println (long, int=RDL_DEC)
 print an long integer of base number system followed by new line
 
size_t println (unsigned long, int=RDL_DEC)
 print an unsigned long integer of base number system followed by new line
 
size_t println (double, int=2)
 print an double
 
size_t println (void)
 Goto to new line.
 
size_t println (const std::string &s)
 print an C++ string object followed by new line
 
template<typename T >
size_t print (const std::vector< T > &v, int format=defaultFormat< T >())
 Print a vector of any type.
 
template<typename T >
size_t println (const std::vector< T > &vec, int format=defaultFormat< T >())
 Print a vector of elements followed by a newline.
 
template<typename T , size_t N>
size_t print (const std::array< T, N > &arr, int format=defaultFormat< T >())
 Print a std::array of any type.
 
template<typename T , size_t N>
size_t println (const std::array< T, N > &arr, int format=defaultFormat< T >())
 Print a std::array of elements followed by a newline.
 

Public Attributes

TFT_modes_e TFT_mode
 
display_rotate_e displayRotate = Degrees_0
 
TFT_PCBtype_e TFT_PCBtype
 

Private Member Functions

rdlib::Return_Codes_e TFTST7735BInitialize (void)
 init routine for ST7735B controller
 
rdlib::Return_Codes_e TFTGreenTabInitialize (void)
 init sub-routine ST7735R Green Tab
 
rdlib::Return_Codes_e TFTBlackTabInitialize (void)
 Init Routine ST7735R Black Tab (ST7735S)
 
rdlib::Return_Codes_e TFTRedTabInitialize (void)
 ST7735R Red Tab Init Red PCB version.
 
rdlib::Return_Codes_e TFTSPIInit (void)
 init the SPI
 
rdlib::Return_Codes_e TFTDataCommandPin (void)
 Method for Data or Command pin setup.
 
rdlib::Return_Codes_e TFTClock_Data_ChipSelect_Pins (void)
 Method for Clock, data and chip select pin setup routine for software SPI.
 
void Rcmd1 (void)
 init sub-routine
 
void Rcmd2red (void)
 init sub-routine
 
void Rcmd3 (void)
 init sub-routine
 
void Bcmd (void)
 init sub-routine for ST7735B controller
 
void Rcmd2green (void)
 init sub-routine ST7735R Green Tab
 

Private Attributes

uint8_t _colstart
 
uint8_t _rowstart
 
uint16_t _widthStartTFT
 
uint16_t _heightStartTFT
 
int _spiDev = 0
 
int _spiChan = 0
 
int _spiBaud = 50000
 
int _spiFlags = 0
 

Static Private Attributes

static constexpr uint8_t ST7735_NOP = 0x00
 
static constexpr uint8_t ST7735_SWRESET = 0x01
 
static constexpr uint8_t ST7735_RDDID = 0x04
 
static constexpr uint8_t ST7735_RDDST = 0x09
 
static constexpr uint8_t ST7735_SLPIN = 0x10
 
static constexpr uint8_t ST7735_SLPOUT = 0x11
 
static constexpr uint8_t ST7735_PTLON = 0x12
 
static constexpr uint8_t ST7735_NORON = 0x13
 
static constexpr uint8_t ST7735_INVOFF = 0x20
 
static constexpr uint8_t ST7735_INVON = 0x21
 
static constexpr uint8_t ST7735_DISPOFF = 0x28
 
static constexpr uint8_t ST7735_DISPON = 0x29
 
static constexpr uint8_t ST7735_TFT_Idle_modeON = 0x39
 
static constexpr uint8_t ST7735_TFT_Idle_modeOF = 0x38
 
static constexpr uint8_t ST7735_CASET = 0x2A
 
static constexpr uint8_t ST7735_RASET = 0x2B
 
static constexpr uint8_t ST7735_RAMWR = 0x2C
 
static constexpr uint8_t ST7735_RAMRD = 0x2E
 
static constexpr uint8_t ST7735_PTLAR = 0x30
 
static constexpr uint8_t ST7735_VSCRDEF = 0x33
 
static constexpr uint8_t ST7735_COLMOD = 0x3A
 
static constexpr uint8_t ST7735_MADCTL = 0x36
 
static constexpr uint8_t ST7735_VSCRSADD = 0x37
 
static constexpr uint8_t ST7735_FRMCTR1 = 0xB1
 
static constexpr uint8_t ST7735_FRMCTR2 = 0xB2
 
static constexpr uint8_t ST7735_FRMCTR3 = 0xB3
 
static constexpr uint8_t ST7735_INVCTR = 0xB4
 
static constexpr uint8_t ST7735_DISSET5 = 0xB6
 
static constexpr uint8_t ST7735_PWCTR1 = 0xC0
 
static constexpr uint8_t ST7735_PWCTR2 = 0xC1
 
static constexpr uint8_t ST7735_PWCTR3 = 0xC2
 
static constexpr uint8_t ST7735_PWCTR4 = 0xC3
 
static constexpr uint8_t ST7735_PWCTR5 = 0xC4
 
static constexpr uint8_t ST7735_PWCTR6 = 0xFC
 
static constexpr uint8_t ST7735_VMCTR1 = 0xC5
 
static constexpr uint8_t ST7735_RDID1 = 0xDA
 
static constexpr uint8_t ST7735_RDID2 = 0xDB
 
static constexpr uint8_t ST7735_RDID3 = 0xDC
 
static constexpr uint8_t ST7735_RDID4 = 0xDD
 
static constexpr uint8_t ST7735_GMCTRP1 = 0xE0
 
static constexpr uint8_t ST7735_GMCTRN1 = 0xE1
 
static constexpr uint8_t ST7735_MADCTL_MY = 0x80
 
static constexpr uint8_t ST7735_MADCTL_MX = 0x40
 
static constexpr uint8_t ST7735_MADCTL_MV = 0x20
 
static constexpr uint8_t ST7735_MADCTL_ML = 0x10
 
static constexpr uint8_t ST7735_MADCTL_RGB = 0x00
 
static constexpr uint8_t ST7735_MADCTL_BGR = 0x08
 
static constexpr uint8_t ST7735_MADCTL_MH = 0x04
 

Additional Inherited Members

- Protected Member Functions inherited from color16_graphics
void pushColor (uint16_t color)
 pushColor
 
void writeCommand (uint8_t)
 : Write an SPI command to
 
void writeData (uint8_t)
 Write an SPI data byte to device.
 
void spiWrite (uint8_t)
 Write byte to SPI.
 
void spiWriteDataBuffer (uint8_t *spidata, int len)
 Write a buffer to SPI, both Software and hardware SPI supported.
 
- Protected Member Functions inherited from Print
void setWriteError (int err=0)
 
- Protected Attributes inherited from color16_graphics
bool _textwrap = true
 
uint16_t _textcolor = 0xFFFF
 
uint16_t _textbgcolor = 0x0000
 
int16_t _cursorX = 0
 
int16_t _cursorY = 0
 
uint16_t _width
 
uint16_t _height
 
uint8_t _XStart = 0
 
uint8_t _YStart = 0
 
float _arcAngleMax = 360.0f
 
int _arcAngleOffset = 0
 
int8_t _Display_DC
 
int8_t _Display_RST
 
int8_t _Display_CS
 
int8_t _Display_SCLK
 
int8_t _Display_SDATA
 
int8_t _Display_MISO
 
int _DeviceNumGpioChip = 0
 
int _GpioHandle = 0
 
bool _hardwareSPI =true
 
uint16_t _HighFreqDelay = 0
 
int _spiHandle = 0
 
- Protected Attributes inherited from display_Fonts
std::span< const uint8_t > _FontSelect = pFontDefault
 
uint8_t _Font_X_Size = 0x08
 
uint8_t _Font_Y_Size = 0x08
 
uint8_t _FontOffset = 0x20
 
uint8_t _FontNumChars = 0x5F
 

Detailed Description

Class to control ST7735 TFT basic functionality.

Member Enumeration Documentation

◆ TFT_modes_e

TFT display modes

Enumerator
TFT_Normal_mode 

In this mode, the display is able to show maximum 262

TFT_Partial_mode 

In this mode part of the display is used with maximum 262

TFT_Idle_mode 

In this mode, part of the display is used but with 8 colors.

TFT_Sleep_mode 

In this mode, the DC: DC converter, internal oscillator and panel driver circuit are stopped. Only the MCU interface and memory works with VDDI power supply. Contents of the memory are safe.

TFT_Invert_mode 

Invert display colors

TFT_Display_on_mode 

Turn Display on

TFT_Display_off_mode 

In this mode, both VDD and VDDI are removed.

◆ TFT_PCBtype_e

TFT type type of PCB

Enumerator
TFT_ST7735R_Red 

ST7735R Red Tab

TFT_ST7735R_Green 

ST7735R Green Tab

TFT_ST7735S_Black 

ST7735S Black Tab

TFT_ST7735B 

ST7735B controller

Member Function Documentation

◆ HighFreqDelayGet()

uint16_t ST7735_TFT::HighFreqDelayGet ( void  )

Freq delay used in SW SPI getter, uS delay used in SW SPI method.

Returns
The GPIO communications delay in uS

◆ HighFreqDelaySet()

void ST7735_TFT::HighFreqDelaySet ( uint16_t  CommDelay)

Freq delay used in SW SPI setter, uS delay used in SW SPI method.

Parameters
CommDelayThe GPIO communications delay in uS

◆ setAddrWindow()

void ST7735_TFT::setAddrWindow ( uint16_t  x0,
uint16_t  y0,
uint16_t  x1,
uint16_t  y1 
)
overridevirtual

SPI displays set an address window rectangle for blitting pixels.

Parameters
x0Top left corner x coordinate
y0Top left corner y coordinate
x1Width of window
y1Height of window
Note
virtual function overloads graphics library

Implements color16_graphics.

◆ TFTBlackTabInitialize()

rdlib::Return_Codes_e ST7735_TFT::TFTBlackTabInitialize ( void  )
private

Init Routine ST7735R Black Tab (ST7735S)

Returns
a rdlib::Return_Codes_e code
  1. rdlib::Success
  2. upstream error code from TFTSPIinit()

◆ TFTchangeInvertMode()

void ST7735_TFT::TFTchangeInvertMode ( bool  invertModeOn)

Toggle the invert mode.

Parameters
invertModeOntrue invert on false invert off

◆ TFTchangeMode()

void ST7735_TFT::TFTchangeMode ( TFT_modes_e  mode)

This changes the mode of the display as:

Parameters
modeenum TFT_mode value
  1. TFT_Normal_mode: Normal mode.
  2. TFT_Partial_mode: Enable partial mode to work in portions of display
  3. TFT_Idle_mode: Idle_mode consume less current and shows less color
  4. TFT_Sleep_mode: Put display driver section in sleep but rest of the logic works.
  5. TFT_Invert_mode: invert the display
  6. TFT_Display_on_mode: Turn on display
  7. TFT_Display_off_mode: Turn off display

◆ TFTClock_Data_ChipSelect_Pins()

rdlib::Return_Codes_e ST7735_TFT::TFTClock_Data_ChipSelect_Pins ( void  )
private

Method for Clock, data and chip select pin setup routine for software SPI.

Returns
a rdlib::Return_Codes_e code
  1. rdlib::Success
  2. rdlib::GpioPinClaim

◆ TFTDataCommandPin()

rdlib::Return_Codes_e ST7735_TFT::TFTDataCommandPin ( void  )
private

Method for Data or Command pin setup.

Returns
a rdlib::Return_Codes_e code
  1. rdlib::Success
  2. rdlib::GpioPinClaim

◆ TFTGreenTabInitialize()

rdlib::Return_Codes_e ST7735_TFT::TFTGreenTabInitialize ( void  )
private

init sub-routine ST7735R Green Tab

Returns
a rdlib::Return_Codes_e code
  1. rdlib::Success
  2. upstream error code from TFTSPIinit()

◆ TFTInitPCBType() [1/2]

rdlib::Return_Codes_e ST7735_TFT::TFTInitPCBType ( TFT_PCBtype_e  pcbType,
int  device,
int  channel,
int  speed,
int  flags,
int  gpioDev 
)

intialise PCBtype and SPI, Hardware SPI

Parameters
pcbType4 choices 0-3
deviceA SPI device, >= 0.
channelA SPI channel, >= 0.
speedThe speed of serial communication in bits per second.
flagsThe flags may be used to modify the default behaviour. Set to 0(mode 0) for this device.
gpioDevThe device number of a gpiochip.
Returns
  1. rdlib::Success = success
  2. rdlib::WrongInputPCBType see enum choices.
  3. Various other failures modes from upstream functions TFT*Initialize()
Note
overloaded 2 off, 1 for HW SPI , 1 for SW SPI

◆ TFTInitPCBType() [2/2]

rdlib::Return_Codes_e ST7735_TFT::TFTInitPCBType ( TFT_PCBtype_e  pcbType,
uint16_t  CommDelay,
int  gpioDev 
)

intialise PCBtype and SPI, Software SPI

Parameters
pcbType4 choices 0-3
CommDelayuS GPIO delay used in software SPI
gpioDevThe device number of a gpiochip.
Returns
  1. rdlib::Success = success
  2. rdlib::WrongInputPCBType see enum choices.
  3. Various other failures modes from upstream functions TFT*Initialize()
Note
overloaded 2 off, 1 for HW SPI , 1 for SW SPI

◆ TFTInitScreenSize()

void ST7735_TFT::TFTInitScreenSize ( uint8_t  colOffset,
uint8_t  rowOffset,
uint16_t  width_TFT,
uint16_t  height_TFT 
)

initialise the variables that define the size of the screen

Parameters
colOffsetColumn offset
rowOffsetrow offset
width_TFTwidth in pixels
height_TFTheight in pixels
Note
The offsets can be adjusted for any issues with manufacture tolerance/defects

◆ TFTPowerDown()

rdlib::Return_Codes_e ST7735_TFT::TFTPowerDown ( void  )

Call when powering down TFT.

Returns
  1. rdlib::Success
  2. rdlib::GpioPinFree
  3. rdlib::SPICloseFailure
  4. rdlib::GpioChipDevice
Note
Turns off Display Sets GPIO low and turns off SPI

◆ TFTRedTabInitialize()

rdlib::Return_Codes_e ST7735_TFT::TFTRedTabInitialize ( void  )
private

ST7735R Red Tab Init Red PCB version.

Returns
a rdlib::Return_Codes_e code
  1. rdlib::Success
  2. upstream error code from TFTSPIinit()

◆ TFTResetPin()

rdlib::Return_Codes_e ST7735_TFT::TFTResetPin ( void  )

Method for Hardware Reset pin control.

Returns
a rdlib::Return_Codes_e code
  1. rdlib::Success
  2. rdlib::GpioPinClaim

< Reset delay in mS

◆ TFTsetRotation()

void ST7735_TFT::TFTsetRotation ( display_rotate_e  mode)

: change rotation of display.

Parameters
modeTFT_rotate_e enum 0 = Normal 1= 90 rotate 2 = 180 rotate 3 = 270 rotate
Note
if on your display colors are wrong after rotate change you may have chosen wrong display pcb type.

◆ TFTsetScrollDefinition()

void ST7735_TFT::TFTsetScrollDefinition ( uint8_t  top_fix_heightTFT,
uint8_t  bottom_fix_heightTFT,
bool  _scroll_direction 
)

This method defines the Vertical Scrolling Area of the display where:

Parameters
top_fix_heightTFTdescribes the Top Fixed Area,
bottom_fix_heightTFTdescribes the Bottom Fixed Area and
_scroll_directionis scroll direction (0 for top to bottom and 1 for bottom to top).

◆ TFTSetupGPIO() [1/2]

void ST7735_TFT::TFTSetupGPIO ( int8_t  rst,
int8_t  dc 
)

sets up TFT GPIO for Hardware SPi

Parameters
rstreset GPIO
dcdata or command GPIO.
Note
overloaded 2 off, 1 for HW SPI , 1 for SW SPI

◆ TFTSetupGPIO() [2/2]

void ST7735_TFT::TFTSetupGPIO ( int8_t  rst,
int8_t  dc,
int8_t  cs,
int8_t  sclk,
int8_t  din 
)

sets up TFT GPIO for software SPI

Parameters
rstreset GPIO
dcdata or command GPIO.
cschip select GPIO
sclkData clock GPIO
dinData to TFT GPIO
Note
overloaded 2 off, 1 for HW SPI , 1 for SW SPI

◆ TFTSPIInit()

rdlib::Return_Codes_e ST7735_TFT::TFTSPIInit ( void  )
private

◆ TFTST7735BInitialize()

rdlib::Return_Codes_e ST7735_TFT::TFTST7735BInitialize ( void  )
private

init routine for ST7735B controller

Returns
a rdlib::Return_Codes_e code
  1. rdlib::Success
  2. upstream error code from TFTSPIinit()

◆ TFTVerticalScroll()

void ST7735_TFT::TFTVerticalScroll ( uint8_t  vsp)

: This method is used together with the TFTsetScrollDefinition.

Parameters
vspscrolling mode

Member Data Documentation

◆ _colstart

uint8_t ST7735_TFT::_colstart
private

Used to offset column in the event of defect at edge of screen

◆ _heightStartTFT

uint16_t ST7735_TFT::_heightStartTFT
private

never change after first init

◆ _rowstart

uint8_t ST7735_TFT::_rowstart
private

Used to offset row in the event of defect at edge of screen

◆ _spiBaud

int ST7735_TFT::_spiBaud = 50000
private

The speed of serial communication in bits per second.

◆ _spiChan

int ST7735_TFT::_spiChan = 0
private

A SPI channel, >= 0.

◆ _spiDev

int ST7735_TFT::_spiDev = 0
private

A SPI device, >= 0.

◆ _spiFlags

int ST7735_TFT::_spiFlags = 0
private

The flags 2 LSB defines SPI mode

◆ _widthStartTFT

uint16_t ST7735_TFT::_widthStartTFT
private

never change after first init

◆ displayRotate

display_rotate_e ST7735_TFT::displayRotate = Degrees_0

Enum to hold rotation

◆ ST7735_CASET

constexpr uint8_t ST7735_TFT::ST7735_CASET = 0x2A
staticconstexprprivate

Column address set

◆ ST7735_COLMOD

constexpr uint8_t ST7735_TFT::ST7735_COLMOD = 0x3A
staticconstexprprivate

Interface Pixel Format

◆ ST7735_DISPOFF

constexpr uint8_t ST7735_TFT::ST7735_DISPOFF = 0x28
staticconstexprprivate

Display off

◆ ST7735_DISPON

constexpr uint8_t ST7735_TFT::ST7735_DISPON = 0x29
staticconstexprprivate

Display on

◆ ST7735_DISSET5

constexpr uint8_t ST7735_TFT::ST7735_DISSET5 = 0xB6
staticconstexprprivate

Display Function set

◆ ST7735_FRMCTR1

constexpr uint8_t ST7735_TFT::ST7735_FRMCTR1 = 0xB1
staticconstexprprivate

Normal

◆ ST7735_FRMCTR2

constexpr uint8_t ST7735_TFT::ST7735_FRMCTR2 = 0xB2
staticconstexprprivate

idle

◆ ST7735_FRMCTR3

constexpr uint8_t ST7735_TFT::ST7735_FRMCTR3 = 0xB3
staticconstexprprivate

Partial

◆ ST7735_GMCTRN1

constexpr uint8_t ST7735_TFT::ST7735_GMCTRN1 = 0xE1
staticconstexprprivate

Negative Gamma Correction Setting

◆ ST7735_GMCTRP1

constexpr uint8_t ST7735_TFT::ST7735_GMCTRP1 = 0xE0
staticconstexprprivate

Positive Gamma Correction Setting

◆ ST7735_INVCTR

constexpr uint8_t ST7735_TFT::ST7735_INVCTR = 0xB4
staticconstexprprivate

Display Inversion control

◆ ST7735_INVOFF

constexpr uint8_t ST7735_TFT::ST7735_INVOFF = 0x20
staticconstexprprivate

Display invert off

◆ ST7735_INVON

constexpr uint8_t ST7735_TFT::ST7735_INVON = 0x21
staticconstexprprivate

Display Invert on

◆ ST7735_MADCTL

constexpr uint8_t ST7735_TFT::ST7735_MADCTL = 0x36
staticconstexprprivate

Memory Access Control

◆ ST7735_MADCTL_BGR

constexpr uint8_t ST7735_TFT::ST7735_MADCTL_BGR = 0x08
staticconstexprprivate

BGR order

◆ ST7735_MADCTL_MH

constexpr uint8_t ST7735_TFT::ST7735_MADCTL_MH = 0x04
staticconstexprprivate

Horizontal Refresh Order

◆ ST7735_MADCTL_ML

constexpr uint8_t ST7735_TFT::ST7735_MADCTL_ML = 0x10
staticconstexprprivate

Vertical Refresh Order

◆ ST7735_MADCTL_MV

constexpr uint8_t ST7735_TFT::ST7735_MADCTL_MV = 0x20
staticconstexprprivate

Row/Column Order (MV)

◆ ST7735_MADCTL_MX

constexpr uint8_t ST7735_TFT::ST7735_MADCTL_MX = 0x40
staticconstexprprivate

Column Address Order

◆ ST7735_MADCTL_MY

constexpr uint8_t ST7735_TFT::ST7735_MADCTL_MY = 0x80
staticconstexprprivate

Row Address Order

◆ ST7735_MADCTL_RGB

constexpr uint8_t ST7735_TFT::ST7735_MADCTL_RGB = 0x00
staticconstexprprivate

RGB order

◆ ST7735_NOP

constexpr uint8_t ST7735_TFT::ST7735_NOP = 0x00
staticconstexprprivate

Non operation

◆ ST7735_NORON

constexpr uint8_t ST7735_TFT::ST7735_NORON = 0x13
staticconstexprprivate

Normal Display

◆ ST7735_PTLAR

constexpr uint8_t ST7735_TFT::ST7735_PTLAR = 0x30
staticconstexprprivate

Partial Area

◆ ST7735_PTLON

constexpr uint8_t ST7735_TFT::ST7735_PTLON = 0x12
staticconstexprprivate

Partial mode

◆ ST7735_PWCTR1

constexpr uint8_t ST7735_TFT::ST7735_PWCTR1 = 0xC0
staticconstexprprivate

Power_Control VRH: Set the GVDD voltage

◆ ST7735_PWCTR2

constexpr uint8_t ST7735_TFT::ST7735_PWCTR2 = 0xC1
staticconstexprprivate

Power_Control BT: set VGH/ VGL voltage

◆ ST7735_PWCTR3

constexpr uint8_t ST7735_TFT::ST7735_PWCTR3 = 0xC2
staticconstexprprivate

Power_Control APA: adjust op amp & DCA: boost Voltage

◆ ST7735_PWCTR4

constexpr uint8_t ST7735_TFT::ST7735_PWCTR4 = 0xC3
staticconstexprprivate

Power_Control APB: adjust op amp & DCB: boost Voltage

◆ ST7735_PWCTR5

constexpr uint8_t ST7735_TFT::ST7735_PWCTR5 = 0xC4
staticconstexprprivate

Power_Control APC: adjust op amp & DCC: boost Voltage

◆ ST7735_PWCTR6

constexpr uint8_t ST7735_TFT::ST7735_PWCTR6 = 0xFC
staticconstexprprivate

Power_Control In partial mode + Idle

◆ ST7735_RAMRD

constexpr uint8_t ST7735_TFT::ST7735_RAMRD = 0x2E
staticconstexprprivate

Memory read

◆ ST7735_RAMWR

constexpr uint8_t ST7735_TFT::ST7735_RAMWR = 0x2C
staticconstexprprivate

Memory write

◆ ST7735_RASET

constexpr uint8_t ST7735_TFT::ST7735_RASET = 0x2B
staticconstexprprivate

Page address set

◆ ST7735_RDDID

constexpr uint8_t ST7735_TFT::ST7735_RDDID = 0x04
staticconstexprprivate

Read Display ID

◆ ST7735_RDDST

constexpr uint8_t ST7735_TFT::ST7735_RDDST = 0x09
staticconstexprprivate

Read Display Status

◆ ST7735_RDID1

constexpr uint8_t ST7735_TFT::ST7735_RDID1 = 0xDA
staticconstexprprivate

read ID1

◆ ST7735_RDID2

constexpr uint8_t ST7735_TFT::ST7735_RDID2 = 0xDB
staticconstexprprivate

read ID2

◆ ST7735_RDID3

constexpr uint8_t ST7735_TFT::ST7735_RDID3 = 0xDC
staticconstexprprivate

read ID3

◆ ST7735_RDID4

constexpr uint8_t ST7735_TFT::ST7735_RDID4 = 0xDD
staticconstexprprivate

read ID4

◆ ST7735_SLPIN

constexpr uint8_t ST7735_TFT::ST7735_SLPIN = 0x10
staticconstexprprivate

Sleep ON

◆ ST7735_SLPOUT

constexpr uint8_t ST7735_TFT::ST7735_SLPOUT = 0x11
staticconstexprprivate

Sleep OFF

◆ ST7735_SWRESET

constexpr uint8_t ST7735_TFT::ST7735_SWRESET = 0x01
staticconstexprprivate

Soft Reset

◆ ST7735_TFT_Idle_modeOF

constexpr uint8_t ST7735_TFT::ST7735_TFT_Idle_modeOF = 0x38
staticconstexprprivate

Idle Mode OFF

◆ ST7735_TFT_Idle_modeON

constexpr uint8_t ST7735_TFT::ST7735_TFT_Idle_modeON = 0x39
staticconstexprprivate

Idle Mode ON

◆ ST7735_VMCTR1

constexpr uint8_t ST7735_TFT::ST7735_VMCTR1 = 0xC5
staticconstexprprivate

VCOM_Control 1

◆ ST7735_VSCRDEF

constexpr uint8_t ST7735_TFT::ST7735_VSCRDEF = 0x33
staticconstexprprivate

Vertical scroll def

◆ ST7735_VSCRSADD

constexpr uint8_t ST7735_TFT::ST7735_VSCRSADD = 0x37
staticconstexprprivate

Vertical Access Control

◆ TFT_mode

TFT_modes_e ST7735_TFT::TFT_mode

Enum to hold display mode

◆ TFT_PCBtype

TFT_PCBtype_e ST7735_TFT::TFT_PCBtype

Enum to hold TFT type


The documentation for this class was generated from the following files: