W801 spi_init In function spi_set_endian () Have no effect. Try with SPI Bus driver block LCD Screen, Can drive successfully, exportation 16 Bit of color data to LCD Screen. But the output color is always reversed, read spi_init Found set spi_set_endian (1) , That means the big end is in front, however SDK the demo In the middle, it is said that the small end is in front. Try to modify the default spi_set_endian (1) for spi_set_endian (0) Have no effect. When you need the big end in front, How to modify? (The color shown below is blue, But the actual value I transmitted was 0XF800 RGB565 format, It should be red, Be changed to 0X00F8 And then it shows up in red, So validation should be a small - and large-end issue)
Use SPI_BYTE_TRANSFER and SPI_DMA_TRANSFER All methods have been tested, Are not feasible.
@SK2024 LCD Which is the driver chip?
@SK2024 with cpu Try setting the size end again and see if it works.
@isme ILI9341
@isme this Not very clear Where to set it Be at SDK In which file?
@SK2024
@isme correction, disposition SPI Transmission mode and size end, Must be in tls_spi_setup later, Otherwise, it will be overwritten and will not take effect.
@isme Did not succeed, I added the code to modify the size end directly from your code, But set to 0 when, Still refresh blue, Set as 1 when, It cannot be refreshed, No longer show color
@SK2024 That means it's not a big or small end problem, You can run it through the logic analyzer. We went through a lot of testing, After this change, CPU way DMA way, The size end of the Settings has taken effect.
@isme Hello, May I ask if there is an open source path for this code, I want to refer to it, thank you!