W801 spi_init函數中的spi_set_endian()不起作用。嘗試用SPI總線驅動一塊LCD屏幕,能成功驅動,輸出16位的顏色數據至LCD屏幕。但是始終輸出顏色相反,閱讀spi_init發現設定了spi_set_endian(1),也即大端在前,但是SDK的demo中又說是小端在前。嘗試修改默認的spi_set_endian(1)為spi_set_endian(0)也不起效果。需要大端在前時,該如何修改?(下圖顯示的顏色為藍色,但是實際我傳輸的值為0XF800 RGB565格式,應該為紅色,修改為0X00F8之後才會顯示為紅色,因此確認應該是大小端的問題)
使用 SPI_BYTE_TRANSFER 以及SPI_DMA_TRANSFER方式都試驗了,均不可行。
@SK2024 LCD驅動芯片是哪個?
@SK2024 用cpu方式再試一下設置大小端看看行不行。
@isme ILI9341
@isme 這個 不是很清楚 在哪個位置設置 是在SDK的哪個文件中?
@SK2024
@isme 更正一下,配置SPI傳輸模式以及大小端,一定要在tls_spi_setup之後,否則會被覆蓋不生效。
@isme 並沒有成功,我按您的代碼直接加入了這個修改大小端的代碼,但是設置為0時,依然刷新藍色,而設置成1時,則無法刷新了,不再顯示顏色
@SK2024 那就說明不是大小端問題了哦,你可以用邏輯分析儀看一下。我們經過大量測試,這麼改之後,CPU方式DMA方式,設置大小端有生效的。
@isme您好,請問一下這個代碼有沒有開源的路徑,想要參考一下,謝謝!