Documentation ¶
Overview ¶
Package st7789 implements a driver for the ST7789 TFT displays, it comes in various screen sizes.
Datasheets: https://cdn-shop.adafruit.com/product-files/3787/3787_tft_QT154H2201__________20190228182902.pdf
http://www.newhavendisplay.com/appnotes/datasheets/LCDs/ST7789V.pdf
Index ¶
- Constants
- func RGBATo565(c color.RGBA) uint16
- type Config
- type Device
- func (d *Device) Command(command uint8)
- func (d *Device) Configure(cfg Config)
- func (d *Device) Data(data uint8)
- func (d *Device) Display() error
- func (d *Device) DrawFastHLine(x0, x1, y int16, c color.RGBA)
- func (d *Device) DrawFastVLine(x, y0, y1 int16, c color.RGBA)
- func (d *Device) EnableBacklight(enable bool)
- func (d *Device) FillRectangle(x, y, width, height int16, c color.RGBA) error
- func (d *Device) FillRectangleWithBuffer(x, y, width, height int16, buffer []color.RGBA) error
- func (d *Device) FillScreen(c color.RGBA)
- func (d *Device) GetHighestScanLine() uint16
- func (d *Device) GetLowestScanLine() uint16
- func (d *Device) GetScanLine() uint16
- func (d *Device) InvertColors(invert bool)
- func (d *Device) IsBGR(bgr bool)
- func (d *Device) Rx(command uint8, data []byte)
- func (d *Device) SetPixel(x int16, y int16, c color.RGBA)
- func (d *Device) SetRotation(rotation Rotation)
- func (d *Device) SetScroll(line int16)
- func (d *Device) SetScrollArea(topFixedArea, bottomFixedArea int16)
- func (d *Device) Size() (w, h int16)
- func (d *Device) StopScroll()
- func (d *Device) Sync()
- func (d *Device) SyncToScanLine(scanline uint16)
- func (d *Device) Tx(data []byte, isCommand bool)
- type FrameRate
- type Rotation
Constants ¶
const ( NOP = 0x00 SWRESET = 0x01 RDDID = 0x04 RDDST = 0x09 SLPIN = 0x10 SLPOUT = 0x11 PTLON = 0x12 NORON = 0x13 INVOFF = 0x20 INVON = 0x21 DISPOFF = 0x28 DISPON = 0x29 CASET = 0x2A RASET = 0x2B RAMWR = 0x2C RAMRD = 0x2E PTLAR = 0x30 COLMOD = 0x3A MADCTL = 0x36 MADCTL_MY = 0x80 MADCTL_MX = 0x40 MADCTL_MV = 0x20 MADCTL_ML = 0x10 MADCTL_RGB = 0x00 MADCTL_BGR = 0x08 MADCTL_MH = 0x04 RDID1 = 0xDA RDID2 = 0xDB RDID3 = 0xDC RDID4 = 0xDD FRMCTR1 = 0xB1 RGBCTRL = 0xB1 FRMCTR2 = 0xB2 PORCTRL = 0xB2 FRMCTR3 = 0xB3 INVCTR = 0xB4 DISSET5 = 0xB6 PWCTR1 = 0xC0 PWCTR2 = 0xC1 PWCTR3 = 0xC2 PWCTR4 = 0xC3 PWCTR5 = 0xC4 VMCTR1 = 0xC5 FRCTRL2 = 0xC6 PWCTR6 = 0xFC GMCTRP1 = 0xE0 GMCTRN1 = 0xE1 GSCAN = 0x45 VSCRDEF = 0x33 VSCRSADD = 0x37 NO_ROTATION Rotation = 0 ROTATION_90 Rotation = 1 // 90 degrees clock-wise rotation ROTATION_180 Rotation = 2 ROTATION_270 Rotation = 3 // Allowable frame rate codes for FRCTRL2 (Identifier is in Hz) FRAMERATE_111 FrameRate = 0x01 FRAMERATE_105 FrameRate = 0x02 FRAMERATE_99 FrameRate = 0x03 FRAMERATE_94 FrameRate = 0x04 FRAMERATE_90 FrameRate = 0x05 FRAMERATE_86 FrameRate = 0x06 FRAMERATE_82 FrameRate = 0x07 FRAMERATE_78 FrameRate = 0x08 FRAMERATE_75 FrameRate = 0x09 FRAMERATE_72 FrameRate = 0x0A FRAMERATE_69 FrameRate = 0x0B FRAMERATE_67 FrameRate = 0x0C FRAMERATE_64 FrameRate = 0x0D FRAMERATE_62 FrameRate = 0x0E FRAMERATE_60 FrameRate = 0x0F // 60 is default FRAMERATE_58 FrameRate = 0x10 FRAMERATE_57 FrameRate = 0x11 FRAMERATE_55 FrameRate = 0x12 FRAMERATE_53 FrameRate = 0x13 FRAMERATE_52 FrameRate = 0x14 FRAMERATE_50 FrameRate = 0x15 FRAMERATE_49 FrameRate = 0x16 FRAMERATE_48 FrameRate = 0x17 FRAMERATE_46 FrameRate = 0x18 FRAMERATE_45 FrameRate = 0x19 FRAMERATE_44 FrameRate = 0x1A FRAMERATE_43 FrameRate = 0x1B FRAMERATE_42 FrameRate = 0x1C FRAMERATE_41 FrameRate = 0x1D FRAMERATE_40 FrameRate = 0x1E FRAMERATE_39 FrameRate = 0x1F MAX_VSYNC_SCANLINES = 254 )
Registers
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct { Width int16 Height int16 Rotation Rotation RowOffset int16 ColumnOffset int16 FrameRate FrameRate VSyncLines int16 }
Config is the configuration for the display
type Device ¶
type Device struct {
// contains filtered or unexported fields
}
Device wraps an SPI connection.
func (*Device) Display ¶
Display does nothing, there's no buffer as it might be too big for some boards
func (*Device) DrawFastHLine ¶
DrawFastHLine draws a horizontal line faster than using SetPixel
func (*Device) DrawFastVLine ¶
DrawFastVLine draws a vertical line faster than using SetPixel
func (*Device) EnableBacklight ¶
EnableBacklight enables or disables the backlight
func (*Device) FillRectangle ¶
FillRectangle fills a rectangle at a given coordinates with a color
func (*Device) FillRectangleWithBuffer ¶
FillRectangleWithBuffer fills buffer with a rectangle at a given coordinates.
func (*Device) FillScreen ¶
FillScreen fills the screen with a given color
func (*Device) GetHighestScanLine ¶ added in v0.14.1
GetHighestScanLine calculates the last scanline id in the frame before VSYNC pause
func (*Device) GetLowestScanLine ¶ added in v0.14.1
GetLowestScanLine calculate the first scanline id to appear after VSYNC pause
func (*Device) GetScanLine ¶ added in v0.14.1
GetScanLine reads the current scanline value from the display
func (*Device) InvertColors ¶
InvertColors inverts the colors of the screen
func (*Device) SetRotation ¶
SetRotation changes the rotation of the device (clock-wise)
func (*Device) SetScroll ¶ added in v0.15.2
SetScroll sets the vertical scroll address of the display.
func (*Device) SetScrollArea ¶ added in v0.15.2
SetScrollArea sets an area to scroll with fixed top and bottom parts of the display.
func (*Device) StopScroll ¶ added in v0.15.2
func (d *Device) StopScroll()
StopScroll returns the display to its normal state.
func (*Device) Sync ¶ added in v0.14.1
func (d *Device) Sync()
Sync waits for the display to hit the next VSYNC pause
func (*Device) SyncToScanLine ¶ added in v0.14.1
SyncToScanLine waits for the display to hit a specific scanline
A scanline value of 0 will forward to the beginning of the next VSYNC, even if the display is currently in a VSYNC pause.
Syncline values appear to increment once for every two vertical lines on the display.
NOTE: Use GetHighestScanLine and GetLowestScanLine to obtain the highest and lowest useful values. Values are affected by front and back porch vsync settings (derived from VSyncLines configuration option).