米联客技术答疑系统
微信客服01
微信客服02
微信客服03
QQ售前
QQ售后
提交问题
常见问题
联系我们
客服时间
周一至周五
8:00~18:00
[X]关闭
联系在线客服
首页
BBS
技术答疑系统
VIP视频课程
VIP板卡资料包
VIP会员购买
米联客-天猫店
米联客-京东店
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
客服中心
工单中心
操作系统Linux
主题分类
学习提问
自学笔记
经验总结
资料分享
LCD液晶显示分析(一)
文档创建者:
ぉ沙皮狗的忧伤
浏览次数:
6326
最后更新:
2020-09-11
操作系统Linux
6326 人阅读
|
0 人回复
本帖最后由 ぉ沙皮狗的忧伤 于 2020-9-11 16:43 编辑
参考网址
https://blog.csdn.net/JerryGou/article/details/79952882
https://www.pianshen.com/article/6600981111/
一、框架
(1)、代码框架
注:先大致了解LCD工作流程,有个印象,方便升入了解LCD
(二)、LCD解析
一、LCD 概念
1. 显示器数据组织格式
1)一幅图像成为一帧,每帧由多行组成,每行由多个像素组成。每个像素的颜色由若干位表示,对于256色LCD,每个像素由8位表示,称为8BPP。(颜色深度)
2)显示器呈Z字行的路线进行扫描显示,使用HSYNC、VSYNC控制扫描和跳转的路径;(Hsync是列,Vsync是行)
2、操作过程
1)设置LCD的HSYNC、VSYNC\VCLK等信号的参数,并将帧内存的地址告诉LCD控制器,塔克自动的发起DMA传输,从帧内存中得到图像数据,出现在数据总线VD[23:0]上。我们只需要将显示的图像数据写入帧内存中即可。
2)图像数据的存储:
例如:由三原色组建的256色(8BPP)显示模式,使用8位数据表示一个像素的颜色。但特殊的是,这8位数据用于表示在调色板中的索引值。这里的调色板使用256*16的内存,即使用16BPP的显示格式来表示对应各个索引值的颜色。因此,最终在LCD显示的仍为16BPP的数据。
内存数据和像素对应的关系为:
其中,P1、P2...为一个个的像素。
像素在调色板中的数据存
放模式16BPP分为
两种
格式:5:6:5和5:5:5:1.即
:
其中
vinfo.red.offset颜色偏移量
R_offset:16 就表示16~23位描述红色
G_offset:8 就表示8~15位描述绿色
B_offset:0 就表示0~7位描述蓝色
操作过程
通过mmap从底层映射一块大小为yres*xres*bits_per_pixel/8的内存到应用层,当你操作这块内存的时候就相当于于操作yres*xres个led灯
代码讲解
上层软件代码
①、定义var和fix结构体
var结构体描述显示屏固定的参数,fix结构体描述显示屏可变的参数
var成员变量
fix成员变量
②、打开framebuffer设备
③、从底层获取var和fix信息
④、打印颜色偏移量、分辨率即颜色深度
⑤、计算屏幕的总大小=像素点*颜色深度/8
⑥、内存映射
⑦、判断显示屏的颜色深度为RGB888 24位还是RGB565 16位
用来显示蓝色,绿色,红色,白色,黑色的数值
操作映射内存,逐个显示内存的像素点
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页