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您好,请问一下这个代码有没有开源的路径,想要参考一下,谢谢!