baode的个人主页

http://free-tech.com.cn/php/u.php?uid=84343  [收藏] [复制]

baode离线

  • 关注:1
  • 粉丝:1
  • 访客:4
  • 等级:普通会员
  • 身份:总版主
  • 总积分:0
  • 保密 ,1960-01-01

最后登录:2016-04-12

更多资料

日志

FRDM_KL46的段式液晶模块使用总结

2015-06-29 13:16
最近,玩了一下FRDM_KL46开发板上面的SLCD。在这里,把我使用过程中遇到的问题,及解决办法,分享给大家。
先上图,看看我的成果。




我这里的程序主要参考飞思卡尔提供的一些例程和kl46的手册。不过,它提供的例程太繁琐,包含了一大堆文件,相当的麻烦。搞不清楚,为什么飞思卡尔的例程这么烂。于是,自己写了一个,使用起来方便多了。
这里只说我遇到的几个问题:
1,  时钟问题
这个问题开始可是折腾了我一下呢。



这是LCD模块中的框图,看到defaultclk =32.768Khz。所以,给我一种错觉,以为lcd模块默认有一个时钟32.768khz。基于此,我就没有配置时钟,采用默认。这就造成了屏显示闪烁。后来选择MCGIRCLK作为时钟,并使能内部IRCLK,才解决这个问题。后来在手册的时钟分配模块找到了一个更详细的图。



这里的ERCLK32K,就是上面的default时钟。而我根本就没有配置这个时钟呢,所以,显示不正常。

2,  引脚使能问题
LCD_PENL  LCD_PENH 用作管脚使能,不区分backplanefront plane。不要误以为只是使能front plane的呦。
LCD_BPENL LCD_BPENH用作管脚功能定义,1back plane,0front plane.

3,关于back planephase定义问题。
这个问题纠结了好久,不明白是如何将LCD_PxxCOMx对应的。手册中,有如下内容



WFx这个寄存器,有两个功能。当相应LCD_Pxx作为front plane时,这8位,作为输出内容。
当作为back plane时,这8位中,同时只有一位为1,即为该LCD_Pxx扮演的phase.

4,  整理一下FRDM_KL46上的SLCD真值表。




经过上述几个问题的折腾,SLCD终于搞明白了。最后附上我的程序,供大家参考。
http://www.myhcs08.com/uploadfile/Demo/kl46_slcd.rar




分类:默认分类|回复:0|浏览:1530|全站可见|转载
 

下一篇:

上一篇: