基于嵌入式技术的MultiBus-CPU模块设计
若要先设定帧缓冲区的物理地址和长度,就要在S1D13506.h里指定,然后在驱动程序里通过对fb_fix_screeninfo赋值来实现:
定义当前显示输出状态,通过对fb_var_screeninfo结构赋值来实现:
Linux下驱动程序总是先调用module_init(),因此LCD初始化通过调用module_init(sldl3xxxfb_init)来实现。sldl3xxxfb_init初始化函数部分代码如下:
首先对LCD的背光灯进行点亮。LCD显示是一种被动的显示模式,不能发光,只能依靠控制透射或反射周围环境的光来达到显示的目的。因此,必须通过写寄存器用高电平指示对LCD加3.2 V电压来实现背光灯的点亮。其函数的部分代码如下:
系统采用的彩色LCD最佳分辨率是800×600,但通过前面对结构Struct fb_var_screeninfo的赋值并不能真正设定其分辨率。因为结构Struct fb_var_screeninfo的值只是作为一个显示记录来用,必须通过设定寄存器的值才能达到需要的分辨率。本系统在S1D13506.h头文件里用一个数组对寄存器的设置作了一个预定义,然后在初始化函数里利用sldReg和sldValue两个实参写入,从而设定了寄存器的值。
评论