Air105 LVGL之颜色困惑

博主在移植8.1.0版LVGL到ILI9341屏幕时遇到花屏和反色问题。经过排查,发现花屏是由于SPI频率过高导致,降低到48M后解决。反色问题源于数据传输顺序,由于芯片不支持16位SPI模式,最后选择在数据写入前手动翻转高低字节。这是对芯片的一个不足,期待更好的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接着上一次,完成了ILI9341屏幕的驱动程序后,马上移植了8.1.0的LVGL代码,一路也比较顺利,很快编译完成,下载后遇到第一个问题:

花屏,显示出来的图标位置和大小都不对,仔细检查了代码,发现都没问题,几经尝试,结果发现竟然是SPI频率的问题,96M情况下ILI9341刷屏尚可,坐标设置可能就出现了异常,无奈只好降低到48M使用。

调整完频率,接着发现了第二个问题:

反色,由于Air105是小端模式,使用8位spi传输时,16位像素的低字节被先写入,而高字节被后写入,这就导致了屏幕反色的问题,解决这个问题,有两种方案,一种是将SPI写入改为16位模式,这样能够使高字节先写入,然后不幸的的HISPI接口不支持数据位宽设置,放弃;另外一种是在LVGL上层进行颜色翻转,然而悲催的是,当lv_conf.h中配置了#define LV_COLOR_16_SWAP 1后,颜色依然是错误的!当然了,就算是这里能把颜色翻转正确了,在显示图片的时候依然会存在问题,所以最终的解决办法依然在底层。

目前无奈的解决方案是,在数据写入屏幕前,人为的将高低字节进行翻转,用时间来换效果了,这不得不说是芯片的一个痛点了,希望芯片厂商能够给一个好的解决方案了……

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值