def disp_spi_send(self, data): if len(data) == 0: return # no need to send anything self.trans.length = len( data) * 8 # Length is in bytes, transaction length is in bits. self.trans.tx_buffer = data esp.spi_device_queue_trans(self.spi, self.trans, -1) esp.spi_device_get_trans_result(self.spi, self.trans_res, -1)
def xpt_cmds(self, cmds): cmd_count = int(len(cmds)) for i in range(0, cmd_count): self.trans[i].cmd = cmds[i] esp.spi_device_queue_trans(self.spi, self.trans[i], -1) result = [] for i in range(0, cmd_count): esp.spi_device_get_trans_result(self.spi, self.trans_result_ptr, -1) buf = self.trans[i].rx_buffer.__dereference__(2) value = (int(buf[0]) << 4) + (int( buf[1]) >> 4) # value is in the 12 higher bits, network order if value == int(self.MAX_RAW_COORD): value = 0 result.append(value) return tuple(result)
def deinit(self): print("Deinitializing XPT2046...") if self.spi: # Pop all pending transaction results ret = 0 while ret == 0: ret = esp.spi_device_get_trans_result(self.spi, self.trans_result_ptr, 1) # Remove device esp.spi_bus_remove_device(self.spi) # Free SPI bus esp.spi_bus_free(self.spihost)
def deinit(self): print('Deinitializing {}..'.format(self.display_name)) self.disp_drv.remove() # Prevent callbacks to lvgl, which refer to the buffers we are about to delete if not self.asynchronous: import lvesp32 lvesp32.deinit() if self.spi: # Pop all pending transaction results ret = 0 while ret == 0: ret = esp.spi_device_get_trans_result(self.spi, self.trans_result_ptr, 1) # Remove device esp.spi_bus_remove_device(self.spi) self.spi = None # Free SPI bus esp.spi_bus_free(self.spihost) self.spihost = None # Free RAM if self.buf1: esp.heap_caps_free(self.buf1) self.buf1 = None if self.buf2: esp.heap_caps_free(self.buf2) self.buf2 = None if self.trans_buffer: esp.heap_caps_free(self.trans_buffer) self.trans_buffer = None
def deinit(self): print('Deinitializing ILI9341..') # Prevent callbacks to lvgl, which refer to the buffers we are about to delete lvesp32.deinit() if self.spi: # Pop all pending transaction results ret = 0 while ret == 0: ret = esp.spi_device_get_trans_result(self.spi, self.trans_result_ptr, 1) # Remove device esp.spi_bus_remove_device(self.spi) self.spi = None # Free SPI bus esp.spi_bus_free(self.spihost) self.spihost = None # Free RAM if self.buf1: esp.heap_caps_free(self.buf1) self.buf1 = None if self.buf2: esp.heap_caps_free(self.buf2) self.buf2 = None if self.trans_buffer: esp.heap_caps_free(self.trans_buffer) self.trans_buffer = None