tinygo.org/x/drivers@v0.27.1-0.20240509133757-7dbca2a54349/examples/ili9341/initdisplay/m5stack_core2.go (about)

     1  //go:build m5stack_core2
     2  
     3  package initdisplay
     4  
     5  import (
     6  	"image/color"
     7  	"machine"
     8  
     9  	axp192 "tinygo.org/x/drivers/axp192/m5stack-core2-axp192"
    10  	"tinygo.org/x/drivers/i2csoft"
    11  	"tinygo.org/x/drivers/ili9341"
    12  )
    13  
    14  // InitDisplay initializes the display of each board.
    15  func InitDisplay() *ili9341.Device {
    16  	machine.SPI2.Configure(machine.SPIConfig{
    17  		SCK:       machine.LCD_SCK_PIN,
    18  		SDO:       machine.LCD_SDO_PIN,
    19  		SDI:       machine.LCD_SDI_PIN,
    20  		Frequency: 40e6,
    21  	})
    22  
    23  	i2c := i2csoft.New(machine.SCL0_PIN, machine.SDA0_PIN)
    24  	i2c.Configure(i2csoft.I2CConfig{Frequency: 100e3})
    25  
    26  	axp := axp192.New(i2c)
    27  	led := axp.LED
    28  	led.Low()
    29  
    30  	display := ili9341.NewSPI(
    31  		machine.SPI2,
    32  		machine.LCD_DC_PIN,
    33  		machine.LCD_SS_PIN,
    34  		machine.NoPin,
    35  	)
    36  
    37  	// configure display
    38  	display.Configure(ili9341.Config{
    39  		Width:            320,
    40  		Height:           240,
    41  		DisplayInversion: true,
    42  	})
    43  	display.FillScreen(color.RGBA{255, 255, 255, 255})
    44  
    45  	display.SetRotation(ili9341.Rotation0Mirror)
    46  
    47  	return display
    48  }