第一节 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显示的更多相关文章

  1. 内核启动后,lcd显示logo失败

    针对-s5pv210,但对其他平台也使用 lcd显示logo失败,若显示成功默认的logo是一只企鹅,但是串口打印“Start display and show logo”,但是LCD屏没有显示    ...

  2. LCD显示方向

    一.ILI9341内存到显示地址的映射 本文只讨论“正常显示”,不讨论“垂直滚动显示”模式. 可以看到物理内存被两个指针访问,行指针和列指针,行指针范围从000h到013Fh,列指针范围为0000h到 ...

  3. Raspberry PI Model B+ (LCD显示CPU温度)

    Title:Raspberry PI Model B+ (LCD显示CPU温度)  --2015-01-29 17:44 买了块连接Raspberry PI Model B+的LCD显示器,上面没写C ...

  4. mini2440裸试验—计算器(LCD显示,触摸屏突破)

    关于Pait_Bmp(x0, y0, x, y, BMPaddr);函数 像素图在屏幕左上角为(0,0),Pait_Bmp中的x0.y0分别像素点初始位置,x,y为BMP图片的X,Y的大小.BMPad ...

  5. LCD显示GPS时钟[嵌入式系统]

    夏任务102:做一个GPS钟 实验要求 用RPi的串口连接一个GPS模块,从GPS得到实时时间,在7段数码管或LCD上显示 实验工具: Raspberry Pi Model B主机, 8G c10 S ...

  6. 2.数码相框-编码(ASCII/GB2312/Unicode)介绍,并使LCD显示汉字字符(2)

    在上章-学习了数码相框的框架分析(1)了 本章主要内容如下: 1)熟悉ASCII/GB2312/Unicode编码 2)写应用程序,使LCD显示汉字和字符 大家都知道,数据传输的是二进制,而字符和汉字 ...

  7. LCD显示异常分析——撕裂(tear effect)【转】

    转自:LCD显示异常分析--撕裂(tear effect) 概述 在上一篇<LCD显示异常分析--开机闪现花屏>中,我们一起分析了开机花屏的问题,在这一篇中,我将对LCD撕裂(tear e ...

  8. LCD显示异常分析——开机闪现花屏【转】

    转自LCD显示异常分析--开机闪现花屏 最近在工作中,有同事遇到LCD开机瞬间会闪现雪花屏的问题,而这类问题都有个共同点,那就是都发生在带GRAM的屏上,同样的问题,在休眠唤醒时也会出现. 其实这类问 ...

  9. TFT LCD显示原理详解

    <什么是液晶> 我们一般认为物体有三态:固态.液态.气态,其实这只是针对水而言,有一些有机化和物 还有介于固态和液态中间的状态 就是液晶态,如下图(一):                 ...

随机推荐

  1. 【HDU3085】nightmare2 双向BFS

    对于搜索树分支很多且有明确起点和终点的情况时,可以采用双向搜索来减小搜索树的大小. 对于双向BFS来说,与单向最大的不同是双向BFS需要按层扩展,表示可能到达的区域.而单向BFS则是按照单个节点进行扩 ...

  2. python自动化运维之路~DAY5

    python自动化运维之路~DAY5 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模块的分类 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数 ...

  3. java performance tools / NetBeans Profiler / Sun BTrace / Eclipse MAT / IBM ISA

    s Oracel Performace Analyzer NetBeans Profiler Eclipse MAT Sun BTrace IBM ISA end

  4. exportfs命令

    exportfs命令:功能说明 :NFS共享管理 语法格式 exportfs [必要参数][选择参数][目录] 功能描述 exportfs 命令:用于管理NFS(Network File System ...

  5. Swift学习笔记9--错误控制

    1.Swift 中有4种处理错误的方式.你可以把函数抛出的错误传递给调用此函数的代码.用do-catch语句处理错误.将错误作为可选类型处理.或者断言此错误根本不会发生. 2.wift 中的错误处理并 ...

  6. Docker-03 docker 加速器--DaoCloud 1.0

    最近在研究Docker,关于安装和加速器配置没有找到很详细的文章(手把手或者无人值守),对于小白的我,吃了不少苦头.于是我要把我学习Docker的过程记录下来,前面已经写了两篇文章了: Docker- ...

  7. outlook关闭时最小化工具

    outlook本身不能支持设置点击关闭按钮时最小化,而是直接退出.需要借助一个加载项实现: Keep Outlook Running. Keep Outlook Running主页:https://s ...

  8. MSVCR120.dll丢失问题

    一.问题:丢失MSVCR120.dll 二.解决方法 到官网下载vcredist_x86.exe安装即可 地址:https://www.microsoft.com/en-us/download/det ...

  9. intellj(idea) 编译项目时在warnings 页签框里 报 “xxx包不存在” 或 “找不到符号” 或 “未结束的字符串字面值” 或 “需要)” 或 “需要;”等错误提示

    如上图: 环境 是 刚换的系统,重装的Intellj,直接双击老的皇帝项目中的idea的 .iml文件,结果 打开 intellj 后,进行 ctrl +shift +F9 编译时 尽然报 错误提示, ...

  10. go通过swig封装、调用c++共享库的技术总结

    go通过swig封装.调用c++共享库的技术总结 @(知识记录) 1 简介 最近在研究golang,希望能对目前既有的python服务做一些优化,这些服务目前已经占用了6-7台机器.选择golang的 ...