170516_(读书笔记)T6963C驱动学习

T6963C中文

240128液晶模块手册

170524:

       记录下学习进度,T6963C里的external ram一共有64K(相当于16位)寻址空间,写程序的时候貌似不用管,毕竟有这么大,240*128一共是3840B=3.75KB,所有还有很多内存,我是这么理解但是没有验证。

      我看完手册,没怎么理解,就想找例子,但是手册上的例子是汇编的。后来在网上找了篇论文,有c语言的例子,我首先搞懂初始化。看初始化的部分,各个资料初始化还是差不多,但是写命令和写数据居然没有程序,给D0-D7的控制口直接赋给地址就没有了,很奇怪。我不明白网上这么做的意思,比如;

  1. #define lcmcom XBYTE[0x3fff]
  2. #define lcmdata XBYTE[0x3eff]
  3. lcmdata=data1;
  4. lcmcom=com;

我就按照写和读的时序,写了写数据和写命令函数,实验测试成功很开心

 void write_cmd(uchar cmd){
       LCD_CD=1;
       LCD_CE=0;
       LCD_RD=1;
       LCD_WR=0;
       LCD_data=cmd;
       LCD_CE=1;
        LCD_data=0xff;
}
void write_data(uchar dat){
       LCD_CD=0;
       LCD_CE=0;
       LCD_RD=1;
        LCD_WR=0;
       LCD_data=dat;
       LCD_CE=1;
       LCD_data=0xff;
}

遇到最大的问题:无法用写命令Set Address Pointer 0x24,在那个地址上写数据,只能从第一个地址上写一个数据,Address Pointer自动加一,而且用Set Address Pointer 0x24命令的时候,0x24命令DATA1与DATA2位高地址和低地址,但是我的使用现象为DATA1与DATA2为高字节和低字节的数据,找了好久大概有3天时间,百思不得其解,快逼疯的感觉,我的查原因,以下是我瞎查原因的步骤:

  1. 判断是不是写命令和写数据函数错了?答:能用写Data Wrinte and Increment ADP命令,
    写数据并显示,就是不能设置Address Pointer,首先排除写命令和写数据函数问题
  2. 判断是不是初始化错了?这个是坑,因为手册根本没有初始化的流程图,不知道要怎么初始化,很尴尬。只能一个一个网上找,再试初始化函数,是否能正常写Address Point,但是无果,后来对比了下给网上给的初始化程序都差不多,可以初步判断不是初始化函数的问题
  3. 按照main()顺序执行,到了一个clear_lcm()清屏的函数,是不是这里错了?初步看了一下流程和指令都是对的,把这个函数注释掉,就无法工作。就略过了这个函数。甚至开始怀疑写地址再写数据这种工作方式。就这样耗费了大量的精力和时间。后来冷静的想了想(主要是和朋友出去浪了一晚班长和唱歌,回家还花了一个小时做表情包脑子放松思考这个问题,就冷静很多),网上疯狂的找有关代码,对比是不是用写地址再写数据方式显示,结果都是这样的显示方式。写一个数据Address Pointer旧自动加一,不用写数据的命令Address Pointer不加一0xC4,Address Pointer还是加一,我就判断是不是自动写数据命令0xb0,没有取消掉,又重新找clear_lcm()函数,果然用的是lcmdata=data1;lcmcom=com;写数据和命令,赶紧改过来,一切ok,问题解决

再来谈谈设置文本和画图的首地址和列数,如果是8*8的点阵,一行文本就30列,地址范围为0-29,整个屏幕的范围0-(30*(128/8)-1)==0-479,画图的首地址和列数同理,但是画图的地址范围为0-240*(128/8)-1==0-383

文本和画图显示模式中或与等关系,文本和画图一样从各首地址为显示的一个数,文本为第一个数字,画图为第一个字节像素点。总重要一点:文本和画图怎么切换,就是写对应的首地址,比如写文本的首地址到整个屏的地址范围写数据,就是显示文本。画图同理。文本和画图同时显示证明地址范围有重叠

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值