def power_down(self): if self.power != -1: esp.gpio_set_level(self.power, 1 - self.power_on) if self.backlight != -1: esp.gpio_set_level(self.backlight, 1 - self.backlight_on)
def send_data(self, data): esp.gpio_set_level(self.dc, 1) # Data mode if len(data) > TRANS_BUFFER_LEN: raise RuntimeError('Data too long, please use DMA!') trans_data = self.trans_buffer.__dereference__(len(data)) trans_data[:] = data[:] self.spi_send(trans_data)
def init(self): self.disp_spi_init() esp.gpio_pad_select_gpio(self.dc) # Initialize non-SPI GPIOs esp.gpio_set_direction(self.dc, esp.GPIO_MODE.OUTPUT) esp.gpio_set_direction(self.rst, esp.GPIO_MODE.OUTPUT) if self.backlight != -1: esp.gpio_set_direction(self.backlight, esp.GPIO_MODE.OUTPUT) # Reset the display esp.gpio_set_level(self.rst, 0) esp.task_delay_ms(100) esp.gpio_set_level(self.rst, 1) esp.task_delay_ms(100) # Send all the commands for cmd in self.init_cmds: self.send_cmd(cmd['cmd']) self.send_data(cmd['data']) if 'delay' in cmd: esp.task_delay_ms(cmd['delay']) print("ILI9341 initialization completed") # Enable backlight if self.backlight != -1: print("Enable backlight") esp.gpio_set_level(self.backlight, 1)
async def _init(self, sleep_func): # Initialize non-SPI GPIOs esp.gpio_pad_select_gpio(self.dc) if self.rst != -1: esp.gpio_pad_select_gpio(self.rst) if self.backlight != -1: esp.gpio_pad_select_gpio(self.backlight) if self.power != -1: esp.gpio_pad_select_gpio(self.power) esp.gpio_set_direction(self.dc, esp.GPIO_MODE.OUTPUT) if self.rst != -1: esp.gpio_set_direction(self.rst, esp.GPIO_MODE.OUTPUT) if self.backlight != -1: esp.gpio_set_direction(self.backlight, esp.GPIO_MODE.OUTPUT) if self.power != -1: esp.gpio_set_direction(self.power, esp.GPIO_MODE.OUTPUT) # Power the display if self.power != -1: esp.gpio_set_level(self.power, self.power_on) await sleep_func(100) # Reset the display if self.rst != -1: esp.gpio_set_level(self.rst, 0) await sleep_func(100) esp.gpio_set_level(self.rst, 1) await sleep_func(100) # Send all the commands for cmd in self.init_cmds: self.send_cmd(cmd['cmd']) if 'data' in cmd: self.send_data(cmd['data']) if 'delay' in cmd: await sleep_func(cmd['delay']) print("{} initialization completed".format(self.display_name)) # Enable backlight if self.backlight != -1: print("Enable backlight") esp.gpio_set_level(self.backlight, self.backlight_on) # Register the driver self.disp_drv.register()
def init(self): self.disp_spi_init() # Initialize non-SPI GPIOs esp.gpio_pad_select_gpio(self.dc) esp.gpio_pad_select_gpio(self.rst) if self.backlight != -1: esp.gpio_pad_select_gpio(self.backlight) if self.power != -1: esp.gpio_pad_select_gpio(self.power) esp.gpio_set_direction(self.dc, esp.GPIO_MODE.OUTPUT) esp.gpio_set_direction(self.rst, esp.GPIO_MODE.OUTPUT) if self.backlight != -1: esp.gpio_set_direction(self.backlight, esp.GPIO_MODE.OUTPUT) if self.power != -1: esp.gpio_set_direction(self.power, esp.GPIO_MODE.OUTPUT) # Power the display if self.power != -1: esp.gpio_set_level(self.power, self.power_on) sleep_ms(100) # Reset the display esp.gpio_set_level(self.rst, 0) sleep_ms(100) esp.gpio_set_level(self.rst, 1) sleep_ms(100) # Send all the commands for cmd in self.init_cmds: self.send_cmd(cmd['cmd']) if 'data' in cmd: self.send_data(cmd['data']) if 'delay' in cmd: sleep_ms(cmd['delay']) print("{} initialization completed".format(self.display_name)) # Enable backlight if self.backlight != -1: print("Enable backlight") esp.gpio_set_level(self.backlight, self.backlight_on)
def send_data_dma(self, data): # data should be allocated as DMA-able memory esp.gpio_set_level(self.dc, 1) # Data mode self.spi_send_dma(data)
def send_trans_word(self): esp.gpio_set_level(self.dc, 1) # Data mode self.spi_send(self.word_trans_data)
def send_cmd(self, cmd): esp.gpio_set_level(self.dc, 0) # Command mode self.cmd_trans_data[0] = cmd self.spi_send(self.cmd_trans_data)
def send_data(self, data, dma=False): esp.gpio_set_level(self.dc, 1) # Data mode self.disp_spi_send(data, dma=dma)
def send_cmd(self, cmd): self.cmd_data[0] = cmd esp.gpio_set_level(self.dc, 0) # Command mode self.disp_spi_send(self.cmd_data)
def send_data(self, data): esp.gpio_set_level(self.dc, 1) # Data mode self.disp_spi_send(data)