S5PV210 LCD显示
第一节 S5PV210 LCD控制器
要使一块LCD正常显示文字或图像,不仅需要LCD驱动器,还需要相应的LCD控制器。
LCD控制器的主要作用是将在系统存储器中的显示缓冲区中的LCD图像数据传送到外部LCD驱动器,
并产生必要的控制信号,例如VSYNC、HSYSNC、VCLK。S5PV210内部集成了LCD控制器,它结构图如下:

主要有VSFR,VDMA,VPRCS,VTIME和视频时钟产生器几个模块组成:
1) VSFR由121个可编程寄存器组,一套gamma LUT寄存器组(包括64个寄存器),一套i80命令寄存器组(包括12个寄存器)和5块256*32的调色板存储器组成,主要用于lcd控制器的配置;
2) VDMA是LCD专用的DMA传输通道,可以自动从系统总线上获取视频数据传输到VPRCS,无需CPU干涉;
3) VPRCS收到数据后组成特定的格式(如16bpp或24bpp),然后通过数据接口传送到外部LCD;
4) VTIME模块又可编程逻辑组成,负责不同的LCD驱动器的接口时序控制需求,VTIME模块产生VSYNC、HSYNC、VCLK等信号;
S5PV210的LCD控制器的主要特性如下:
1) 支持3种接口:RGB/i80/YUV;
2) 支持可编程的DMA;
3) 5个256*32 bit调色板
4) 虚拟屏最大可达16MB
5) 支持透明叠加(overlay)
6) 支持多种规格和分辨率的LCD
第二节 程序详细讲解
完整代码见目录详细代码下载链接。
1. main.c
共3个步骤:
第一步: 初始化串口;
第二步: 调用lcd_init()初始化LCD;
第三步: 调用lcd_draw_bmp()在LCD上描绘图片。图片的数据保存在一个数组中,我们只需要把数组中的值一个个的读出来并写到FrameBuffer中即可;
第四步: 画字符,具体是调用了printf()打印“FriendlyARM”。因为我们在printf()里不仅调用了putc(),还调用了字符描绘函数lcd_draw_char(),所以打印信息即会显示在串口终端也会显示在LCD上。
2. lcd.c
函数lcd_draw_char()用于描绘字符,其主要步骤如下:
第一步 获得字模。以传进来的参数为下标,从字模数组fontdata_8x16里取出对应的字模,数组fontdata_8x16的定义位于font_8x16.c中,这个文件时从linux内核中抽出来的;
第二步 检查是否需要回车换行。当遇到’\n’时表示换行,当遇到’\r’表示回车;
第三步 在8x16个像素里描绘一个字符。font_8x16.c里定义的每一个字模都是由8x16bit组成,每1bit对应一个像素,如果某bit为1则调用lcd_draw_pixel()将该像素描蓝,为0则不描;
第四步 光标移动到下一个8x16像素的位置;
函数lcd_draw_bmp()用于描绘图片,其主要步骤如下:
第一步: 从数组中获取像素的颜色值;
第二步: 调用lcd_draw_pixel()将数组中的值一个个地在LCD上描绘出来,最后组成一张图片;
第三节 实验现象
LCD上会显示绚丽的图片,并且会有“FriendlyARM”的字样,效果如下:

详细代码下载链接:http://download.csdn.net/detail/klcf0220/6045023
S5PV210 LCD显示的更多相关文章
- 内核启动后,lcd显示logo失败
针对-s5pv210,但对其他平台也使用 lcd显示logo失败,若显示成功默认的logo是一只企鹅,但是串口打印“Start display and show logo”,但是LCD屏没有显示 ...
- LCD显示方向
一.ILI9341内存到显示地址的映射 本文只讨论“正常显示”,不讨论“垂直滚动显示”模式. 可以看到物理内存被两个指针访问,行指针和列指针,行指针范围从000h到013Fh,列指针范围为0000h到 ...
- Raspberry PI Model B+ (LCD显示CPU温度)
Title:Raspberry PI Model B+ (LCD显示CPU温度) --2015-01-29 17:44 买了块连接Raspberry PI Model B+的LCD显示器,上面没写C ...
- mini2440裸试验—计算器(LCD显示,触摸屏突破)
关于Pait_Bmp(x0, y0, x, y, BMPaddr);函数 像素图在屏幕左上角为(0,0),Pait_Bmp中的x0.y0分别像素点初始位置,x,y为BMP图片的X,Y的大小.BMPad ...
- LCD显示GPS时钟[嵌入式系统]
夏任务102:做一个GPS钟 实验要求 用RPi的串口连接一个GPS模块,从GPS得到实时时间,在7段数码管或LCD上显示 实验工具: Raspberry Pi Model B主机, 8G c10 S ...
- 2.数码相框-编码(ASCII/GB2312/Unicode)介绍,并使LCD显示汉字字符(2)
在上章-学习了数码相框的框架分析(1)了 本章主要内容如下: 1)熟悉ASCII/GB2312/Unicode编码 2)写应用程序,使LCD显示汉字和字符 大家都知道,数据传输的是二进制,而字符和汉字 ...
- LCD显示异常分析——撕裂(tear effect)【转】
转自:LCD显示异常分析--撕裂(tear effect) 概述 在上一篇<LCD显示异常分析--开机闪现花屏>中,我们一起分析了开机花屏的问题,在这一篇中,我将对LCD撕裂(tear e ...
- LCD显示异常分析——开机闪现花屏【转】
转自LCD显示异常分析--开机闪现花屏 最近在工作中,有同事遇到LCD开机瞬间会闪现雪花屏的问题,而这类问题都有个共同点,那就是都发生在带GRAM的屏上,同样的问题,在休眠唤醒时也会出现. 其实这类问 ...
- TFT LCD显示原理详解
<什么是液晶> 我们一般认为物体有三态:固态.液态.气态,其实这只是针对水而言,有一些有机化和物 还有介于固态和液态中间的状态 就是液晶态,如下图(一): ...
随机推荐
- HTTP/1.1 100 Continue - I 服了 You
今天用 c 的 socket() 模拟发送http请求:上传一张图片到服务器. 在本地测试,本地电脑: xp, iis5.1 经过半天时间对 http post file 协议的了解,代码已经写好,测 ...
- c++11并发之std::thread
知识链接: https://www.cnblogs.com/lidabo/p/7852033.html 构造函数如下: ) thread() noexcept; initialization() te ...
- 走进HTTP协议之二 基本HTTP机制
本系列第一节,我们回顾了与HTTP协议有关的基本术语和概念,本文将分析HTTP协议的基本原理与机制 HTTP协议的用途 HTTP协议用于客户端与服务器之间的通信,在通信线路两端,必定一端是客户端,另一 ...
- (stripTrailingZeros)A == B hdu2054
A == B ? Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- 什么是 Spring?
感想: 我在写这个东西的时候看了不同的视频,和不同的书,关于对于spring的讲解,感觉黑马的培训视频,是讲的更加的让人容易理解. 这段时间因为各种的事情,没有写过博客了,曾经做的笔记有的在有道云笔记 ...
- 版本控制工具Git工具快速入门-Linux篇
版本控制工具Git工具快速入门-Linux篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.版本管理系统的介绍 1>.版本管理系统的特点 1.1>.自动生成备份: ...
- Python基础【day02】:列表(三)
本节内容 0.列表常用功能汇总1.定义列表2.访问列表中的元素3.切片4.追加5.插入6.修改7.拷贝8.删除9.扩展10.统计11.翻转12.排序13.获取下标值14.清空列表 列表是Python最 ...
- weblogic/tomcat Get乱码【转】
引用自:http://www.cnblogs.com/1995hxt/p/4982835.html (非常清晰) 其它好文 tomcat和weblogic设置编码方式 tomcat解决方案 在con ...
- PHP7 学习笔记(五)安装event扩展(libevent)
一.描述:有效安排I/O,时间和信号的扩展 使用可用于特定平台的最佳I/O通知机制的事件,是PHP基础设施的libevent端口. 二.下载地址:http://pecl.php.net/package ...
- JAVA中equals方法与hashCode方法学习
首先参考文章:http://www.oschina.net/translate/working-with-hashcode-and-equals-methods-in-java 1,equals方法的 ...