2011-06-24 21:57:09

一,读id--完成

二,自己写了驱动--完成

三,调试LCD屏驱动--完成

一         读id,不过过程还有点曲折。

因为之前写命令写数据的时序是根据ili9325规格书P108来的,那么读也应该是这个方法。但是就是没法读出正确结果。为什么呢?于是我突然想到iar我曾经仅快速运行几行与程序整体运行起来,在这2种情况下,用示波器测他们引脚的频率是不同的。所以我把单次读id改成了循环读id。没想到真的ok了。循环了几十次后读出了id=0x9325.于是猜测是LCD屏不稳定,所以要读那么多次才能读出id。那么在三次reset后加上了50ms延时,再读,没想到1次就读出来啦。开心啊,休息下喝口水回来,又尝试了一次。结果200多次都读不出来了,于是我中途软件暂停再继续,马上在下一次就读出来了。我怀疑是在读的时序中可能太快了。反复10次吧!都是要中间手动暂停一下。于是我在时序中又在可以加nop的地方加了写nop。结果还是一样。我一定要暂停一下程序,才能读出。突然就没方向了。怎么这么不稳定啊。哎,这个问题可能和编译器有关系,我的目的主要是证明我可以根据规格书自己写时序。那么现在能读出正确的id,这关算过了,示波器也懒得开了,心中自有时序图。

二      写LCD屏驱动
        硬件没问题了,写时序之前也搞定了,可以进入下一步,即根据规格书写驱动时序。当然在些驱动时序前,我已经对ili9325的大多数寄存器都研究过了。那么根据ili9325的P99-P101页的配置流程指导。我写了版本1驱动。版本2驱动是为了验证版本1驱动中的某些单个寄存器配置是否正确而写。也算我的一个循序渐进的调试方法。

版本1上电后效果:光是.h文件中的define就会了我2h的时间。接着根据规格书写了驱动代码LCD_init1()。上电后,有效果,不过是从上到下的。而且颜色很淡。总算能驱动屏,比我想象中的要好。

版本2上电后效果,当然我还做了另外一个版本,就是根据出厂代码的配置寄存器的顺序,从我的初始化代码中把这些寄存器的配置给挑选出来,组成了一个LCD_init2(),也上电,发现效果和出厂配置基本一致。我做第二个版本的目的,是想确定我每一个单独的寄存器配置是否正确。那么验证成功。接着我要在我第一个版本上进行配置修改,特别可能哪些寄存器的顺序安排错了。

三      驱动代码调试

第一层次调试
关于LCD的驱动调试因为我当初有对规格书配置寄存器有2种理解。
1,如果寄存器R10h之前设置过。那么之前的设置值是否要添加到第二次设置值中呢?
我一开始理解为不要。可能是想象中,设置完后某些时序启动了,那么第二次再设置这个寄存器对某些已经设置过的位就不用再设置了。可以用0来覆盖。于是我写的LCD_init就是在根据规格书流程的基础上,再加上我这个设计思想。结果证明是错误的。
1,于是我启动了第二个思路。就是不能把之前为寄存器设置的值覆盖为0.第二次再设置这个寄存器的时候要把之前设置的值再设置一遍并且或上新的值。结果比较成功。能看出不同色的刷屏。但是刷屏的方向及颜色都与我的理论设想不对。

第二层次调试
但是显示的效果与我的设想是不同的,出现的现象为
1,显示的颜色明明让显示全红,它显示的是全蓝,绿色是对的,然后明明要全蓝,但是显示的是全红。那么我知道我的R03h的寄存器的BGR位一定设置反的。改了下。颜色显示正确了。

2,显示的是从底部往顶部的刷屏。我要的从顶部到底部的顺序刷屏。
1)检测SS,SM,GS位,配置的是从上到下啊?难道我的起始行配置错了。再仔细看看显示效果。原来效果是在大概310行开始一边往下填充,一边往上填充。让我想到了,我需要再设置一些值看看。接着我让SCN从0变为0A,那么应该从G240开始,也就是从上到下60行开始显示,接着效果是它从倒数第60行开始显示。怎么G320和G1的位置对换了?之前我研究寄存器的时候没发现哪个寄存器可以有这样的功能啊?
2)哦想起来了,gate行打开效果我检查过设置正确,但是enter方向是AM和I/D寄存器,快点去检查下。检查出来AM=0,I/D=3应该是对的,但是显示增么是从下到上,于是把I/D=0理论应该从下到上,但是结果是从上到下。虽然已经初步达到我要的效果,但是我要找出根本原因。发现ORG没配置,配置为0,结果一样。另外,仔细看效果后,发现最后有大概5行。是先显示的,然后再跳到首行。一定还有问题,难道是电极方向问题?应该没关系啊!
3)当我走头无路时,想来想去只能把目光再定位到方向设置方面的寄存器,再看看我对他们的定义是否正确。结果被我查出来,我的GS_1该为1<<15但是我定义的是1<<1.马上改下,看效果。yes!成功。

第三层次调试
仔细欣赏我调出的刷屏。效果不太好,我看出貌似这颜色数据更新的比较慢,同时可以看到3种颜色,于是想到到配置频率问题。把step-up circuit 1和step-up circuit 2的频率调快。ok,注意我gamma没有配置哦,以我非专业的水平去看显示效果,觉得已经和出厂配置的效果一样了。

LCD初始化驱动搞定。

ARMLCD屏调试2--ili9325驱动编写的更多相关文章

  1. win7下自写驱动导致开机蓝屏调试过程

    之前没有接触过驱动调试.这里上手就要解决一个因为某个自定义驱动导致的系统登陆后蓝屏问题,记录下来.   问题: 从客户那边弄来的一个虚拟机,已知是加了我们的驱动之后才会导致蓝屏. 解决过程:   使用 ...

  2. liunx中字符驱动编写的简单模板

    下面是关于字符驱动两个程序,主要是说明驱动编写的思想,理解驱动是怎么一步一步被实现的. 驱动的第一个实现程序,是相对于裸机编程的,主要是体会一下驱动编程思想: cdev.h: 所包含的头文件 #ifn ...

  3. AM335x(TQ335x)学习笔记——触摸屏驱动编写

    前面几篇文章已经通过配置DTS的方式完成了多个驱动的移植,接下来我们解决TQ335x的触摸驱动问题.由于种种原因,TQ335x的触摸屏驱动是以模块方式提供的,且Linux官方内核中也没有带该触摸屏的驱 ...

  4. v4l2驱动编写篇【转】

    转自:http://blog.csdn.net/michaelcao1980/article/details/53008418 大部分所需的信息都在这里.作为一个驱动作者,当挖掘头文件的时候,你可能也 ...

  5. nand flash详解及驱动编写

    https://www.crifan.com/files/doc/docbook/linux_nand_driver/release/html/linux_nand_driver.html#nand_ ...

  6. IIC驱动学习笔记,简单的TSC2007的IIC驱动编写,测试

    IIC驱动学习笔记,简单的TSC2007的IIC驱动编写,测试 目的不是为了编写TSC2007驱动,是为了学习IIC驱动的编写,读一下TSC2007的ADC数据进行练习,, Linux主机驱动和外设驱 ...

  7. linux设备驱动编写入门

    linux设备驱动是什么,我个人的理解是liunx有用户态和内核态,用户空间中是不能直接对设备的外设进行使用而内核态中却可以,这时我们需要在内核空间中将需要的外设驱动起来供用户空间使用.linux的驱 ...

  8. Tiny4412之串口(Uart)驱动编写

    一:tiny4412串口驱动编写 1.串口通信简介 串口通信指串口按位(bit)发送和接收字节,串口通信的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口 ...

  9. windbg源码驱动调试 + 无源码驱动调试

    windbg源码驱动调试   环境信息 虚拟机:win7 32位 windbg:6.12(版本不存在太大影响) 设置过程 windbg与虚拟机连接:链接 配置windbg 配置好双机调试后,点击win ...

随机推荐

  1. Gradle入门与使用

    注:此篇博客主要是看官网的学习笔记:https://docs.gradle.org/current/userguide/installation.html 一.安装: 1.Gradle有内置的groo ...

  2. ant design select placeholder不生效原因

    当select的value绑定一个state默认值时,如果默认值是''或null时,placeholder不生效 解决方案:默认值设为undefined

  3. vue2.0无限滚动加载数据插件

      做vue项目用到下拉滚动加载数据功能,由于选的UI库(element)没有这个组件,就用Vue-infinite-loading 这个插件代替,使用中遇到的一些问题及使用方法,总结作记录! 安装: ...

  4. 论Photoshop的正确安装姿势

    Adobe Photoshop 俗称 PS 专业的平面设计软件之一,是Adobe公司最最最牛逼的软件之一.入门很容易,但是想掌握高超的修图,仅靠后天99%的努力是没用的,设计这个东西,讲到底需要的是灵 ...

  5. 黑盒测试实践——day05

    一.任务进展情况 今天主要对web系统的“员工管理模块”和“招聘管理模块”进行测试.测试用例选取之前已经做好的excel文件.       二.存在的问题

  6. 我了解到的新知识之----如何使用Python获取最新外汇汇率信息

    这个需求本来是来源于公司同事工作中需求,用户需要使用数据分析工具Power BI抓取多页的中国银行官网上当天的外汇数据.但是没能研究出来. 我就开始在网络上找关于使用python来抓取当天汇率的案例分 ...

  7. StarUML[3.1.0]官方安装破解版[app.asar]

    StarUml 3.1.0 自注册破解版 安装完毕在注册界面随便输入一个 License 即可. 安装包方式可以选择从官方下,如果下载过慢,也可以选择分享包中的原版安装文件: 不放心的可以去校验MD5 ...

  8. Fiddler_菜单栏介绍_02

    Fiddler界面 [Statistics]请求的性能数据分析 [Inspectors]查看数据内容 Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容: [Auto ...

  9. layui 将后台传过来的值等价替换

    <th lay-data="{field:'opentime',width:'12%' , sort: true, align:'center',templet:'#roleTpl'} ...

  10. 【论文阅读】Deep Mixture of Diverse Experts for Large-Scale Visual Recognition

    导读: 本文为论文<Deep Mixture of Diverse Experts for Large-Scale Visual Recognition>的阅读总结.目的是做大规模图像分类 ...