找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

求教RGB如何整组调换?

[复制链接]
跳转到指定楼层
楼主
any012 发表于 2023-2-7 10:23:11 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
用972画了个板子,为了布线时不那么拧,将R和B调换了,变成了BGR顺序。
接到屏幕后,红色和蓝色是反着的。
那么,如何修改驱动,将R和B整组调换呢?看了datasheet,应该是有这个功能的,就是不知道kernel里该如何修改。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
 楼主| any012 发表于 2023-2-7 17:38:35 | 显示全部楼层
本帖最后由 any012 于 2023-2-7 17:50 编辑

[18:17]
[LCD_ODD :
SEL_ODD]
Control LCD Line Data Out
00 = First line data is RGB, second line data is GBR.
01 = First line data is BGR, second line data is RBG.
10 = First line data is GBR, second line data is RGB.
11 = First line data is RBG, second line data is BGR.

请问这个是不是RGB顺序设置?
不明白为何会有first line data和second line data。
这也算通过软件设置RGB顺序吗?

没看明白LCD的DEVICE_CONTROL寄存器的18、17位,是干什么用的,望指教。
回复 支持 反对

使用道具 举报

板凳
 楼主| any012 发表于 2023-2-11 16:13:37 | 显示全部楼层
在buildroot/output/build/linux-master/drivers/video下修改nuc970fb.c文件,找到上边那个函数,修改:

  1.         fbi->regs.lcd_device_ctrl = ((fbi->regs.lcd_device_ctrl & 0xFFF9FFFF) | 0x00020000);
  2.         writel(fbi->regs.lcd_device_ctrl, regs + REG_LCM_DEV_CTRL);
复制代码

试过0x00020000、0x00040000、0x00060000,都不行,执行qt程序想显示红色背景,都显示的是蓝色背景。
修改nuc970fb.c后,都是执行make linux-rebuild的,并重新拷贝的970uImage文件。

其中有一次改错了值,0x00020000改成了0x0200,结果烧录到板子上进入内核后屏幕直接无任何显示。
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU