本帖最后由 万能的互联网 于 2023-11-18 18:06 编辑
芯片是AT32F403ARGT7 64Pin 显示屏st7789 屏幕驱动代码是BSP里的 8bit xmc 引脚一样,屏幕ic也一样,
lvgl测试代码用的是SC0077_SourceCode_V2.0.1
xmc屏幕驱动这块的代码应该没问题吧,官方示例demo可以正常跑
乱改后的8bit dma xmc lvgl 下载进去就成这样了,能跑,但是不多,只能跑一点点
搞不明白的部分代码截图
自己菜鸟一顿乱改,折腾了几天很明显失败了。全网都找不到at32的8bit dma xmc lvgl的参考代码,官方的5个demo都是16bit的,
github上的at32项目也是少的可怜,求助各位大佬!
也**官方把8bit dma xmc lvgl demo也补齐,方便他人移植。
问题代码 链接: https://pan.baidu.com/s/12a7wByLk9ElvqRf50GeclQ?pwd=AT32
问题代码链接.zip
(328 Bytes)
进度更新:
231030;经过各位靓仔的帮忙,问题向着好的方向发展了!只剩下拖影残影这一问题。
231031;现在只剩下颜色的问题
最后的样子
虽然鸽了一段时间,我还是没能解决问题。但我觉得有必要把,搜寻到的相关线索整理一下,也许说不定以后,也有人遇到类似的问题。
先来看一下LVGL中对16位颜色的相关定义,首先是RGB的16位颜色分配,这是一个共用体。
当LV_COLOR_16_SWAP 为1时,green好像分为高3位和低3位。
在项目中搜索 LV_COLOR_DEPTH == 16 和 LV_COLOR_16_SWAP == 0 ,能找到更多关于颜色的配置代码。
很显然,要弄懂这些代码,还要学习更多关于16位颜色的知识。
硬件方面,我用的是可视角度更高的IPS屏幕。显示屏可以设置RGB和BGR模式,尝试将显示屏配置为BGR模式,问题依旧。
再经过了解,TN屏幕和IPS屏幕也是不同,在TN屏幕中颜色正常,换到IPS可能就遇到反色了。
可能的解决思路:如果是并口的颜色高低位问题,那么换到100pin的16位并口,也许能解决问题。
如果还是有问题,那么也许只能无奈的放弃DMA刷屏。
最后,也许换个更差劲的TN屏就。。。
|