描述

1 Linux关于字符设备的管理

驱动程序在Linux内核中往往是以模块形式出现的。与应用程序的执行过程不同,模块通常只是预先向内核注册自己,当内核需要时响应请求。模块中包含2个重要的函数init_module和cleanup_module。前者是模块的入口,它为模块调用做好准备工作,而后者是在模块即将卸载时被调用,做一些清扫工作。

驱动程序模块通过函数int regiSTer_chrdev(unsignedint major,const char*name,struct file_operations*fops)来完成向内核注册。其中unsigned int major为主设备号,const char*name为设备名,struct file_operations*fops为驱动设备管理中重要的结构指针,此结构中每个字段都必须指向驱动程序中实现特定操作的操作函数。

2 FYD12864-0402B液晶模块简介

FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块,低电压,低功耗。其显示分辨率为128×64,内置8 192个16×16点阵的汉字,以及128个16×8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面,可以显示8×4行16×16点阵的汉字。也可完成图形显示。FYD12864-0402B液晶模块框图如图1所示,其中ST7920为液晶显示控制芯片,ST7921为液晶显示驱动芯片。

FYD12864-0402B控制器接口信号说明如下:

①RS、R/W的配合选择决定控制界面的4种模式,如表1所列。

②E信号如表2所列。

3 LCD读写原理

FYD12864-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可显示32个中文字符或64个ASCII码字符。FYD12864-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。3种不同字符/字型的选择编码范围为:0000~0006H(其代码分别是0000、0002、0004、0006,共4个)显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8 192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H~9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系。

3 LCD读写原理

FYD12864-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可显示32个中文字符或64个ASCII码字符。FYD12864-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。3种不同字符/字型的选择编码范围为:0000~0006H(其代码分别是0000、0002、0004、0006,共4个)显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8 192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H~9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系。

4  编写Makefile和用户级测试程序

下面2行宏变量定义使用armv41-unknown-linux-gcc编译器编译驱动,默认使用gcc编译器、X86 PC平台。

结 语

对Linux设备驱动程序作了详细的介绍,在实际开发板AT91RM9200上加入FYD12864-0402B驱动模块,该液晶驱动采用通用化接口和调用方法,对开发Linux其他设备驱动程序具有很好的指导意义。

打开APP精彩内容

点击阅读全文

linux 液晶屏驱动原理,基于Linux的液晶显示屏驱动设计相关推荐

  1. 怎么点亮段码屏_段码液晶屏实现原理及应用

    什么是段码液晶屏 段码液晶或段码液晶屏,只是液晶屏的用户对于某一类液晶显示屏的一种叫法,但是在液晶行业之内,一般都称之为图案型的液晶屏,从而来区别于点阵型的液晶屏,故段码液晶屏并不是一个很严格的表述或 ...

  2. 段码液晶屏实现原理及注意事项

    **段码液晶屏由于能提供简单快捷的显示效果,被广泛应用于电子领域.我们生活中常见的空调遥控器.电子血压计以及电子计算器等等,使用的都是段码液晶屏.** 图1:几种常见的段码屏 <p> Si ...

  3. linux的驱动开发——基于linux的单片机开发简介

    1.基于linux的单片机开发和裸机开发的区别 \qquad单片机的裸机开发和基于linux的单片机开发,是有这本质的不同. \qquad单片机的裸机开发更加底层,它是直接对寄存器进行操作,进而实现单 ...

  4. linux中断调用spi函数,基于Linux的ARM与FPGA SPI驱动,中断函数调用spidev_sync_read(),出现异常...

    基于Linux的ARM与FPGA SPI驱动,中断函数调用spidev_sync_read(),出现错误 BUG: scheduling while atomic: spidev_test/1034/ ...

  5. linux无线网卡驱动分析,基于Linux的无线网卡驱动程序

    基于Linux的无线网卡驱动程序 文章分析了Linux下无线网卡驱动程序结构及设计方法,着重 (本文共4页) 阅读全文>> 无线局域网是当前较为常见的一种无线接入技术,具有运行速度高一级灵 ...

  6. linux内核下网络驱动流程,基于Linux内核驱动的网络带宽测速方法与流程

    本发明涉及一种测速方法,尤其是一种网络带宽测速方法. 背景技术: :电信运营商为客户提供一定带宽的Internet接入:为了检验带宽是否达标,一般均由客户使用个人电脑在网页上直接测速.但是随着智能网关 ...

  7. linux 网卡驱动分析,基于linux下网卡驱动分析及实现技术研究

    摘    要 Linux技术是当前计算机技术中最大的一个热点,在我国以及全世界得到了迅猛的发展,被广泛的应用于嵌入式系统.服务器.网络系统.安全等领域.从而使得掌握在 Linux环境下的开发技术,成为 ...

  8. Linux断点方法,一种基于Linux问题断点的定位方法及系统与流程

    本发明属于Linux断点解决技术领域,涉及一种基于Linux问题断点的定位方法及系统. 背景技术: 在Linux的日常测试过程中,经常会遇见一些未知的原因下系统启动过程中突然出现的宕机,黑屏等现象.导 ...

  9. linux测试自动化,一种基于Linux系统下自动化测试RoCE性能的方法及系统与流程

    本发明涉及自动化测试的技术领域,特别涉及一种基于Linux系统下自动化测试roce性能的方法及其系统. 背景技术: 现在迅速发展的服务器行业,对网络服务性能提出了越来越高的要求.特别是在互联网行业以及 ...

最新文章

  1. android xposed 编译,Xposed修改特征编译
  2. 火星今天飞抵西非国家寻找埃博拉疫情
  3. 汇编程序:将字符串中所有大写字符转为小写
  4. [css] 用css实现一个等腰三角形的小图标
  5. 0到1:闲鱼高复杂度高性能社区圈子开发实录
  6. mysql链接丢失_mysql 连接丢失错误解决(转载)
  7. 最简洁的方式,实现web端百度地图一键定位导航
  8. valueChangeListener
  9. 吐血整理了下AAAI2022中和NLP相关的论文,包括信息抽取、机翻、NER、多模态、数据增强、问答、多语言、KD、文本纠错等...
  10. Codeforces 1029B. Creating the Contest 动态规划O(nlogn)解法 及 单调队列O(n)解法
  11. Python 高性能编程
  12. 浏览器html控件编辑,HTMLEdit 示例:包装 Internet Explorer MSHTML 编辑控件
  13. 疫情防控背景下在线课程教学满意度影响因素分析与对策探讨-以电子商务及法律专业为例
  14. 薅羊毛!如何让趣头条自动阅读挣钱
  15. 高德地图自定义地图样式
  16. 在用户输入手机号或者要求输入纯数字时,输入法自动切换到数字的代码
  17. 饥荒联机版修改在线模式
  18. html如何冻结字段,利用jQuery实现HTML 表格行列冻结
  19. 弘辽科技:直通车如何降低PPC
  20. 行为分析(十):姿态估计部分(六):人体关键点(keypoints)生成算法综述

热门文章

  1. [转]全球付虚拟卡申请开发者账号的流程~
  2. 将Excel批量转换为csv格式
  3. 常见的几种内排序算法以及实现(C语言)
  4. 【经验整理.01】Xilinx网站资源导读 ISE11版
  5. EaxyExcel高亮单元格和填充颜色
  6. 前端基础之《Bootstrap(6)—全局CSS样式_表单》
  7. HTTPS免费证书的申请与配置
  8. 生产者消费者模型之lock版本(JAVA)
  9. 管理会计习题集及答案 8-14章
  10. do vis是什么意思_回答Do you have a family为什么不是Yes I do?原因很简单