屏幕驱动一般分为串口与并口两种通信类型,并口驱动需要的io口更动,一般小屏的并口屏会占用8个io口,即能同时传输一个字节的8位数据,串口通信需要的io口更少,串口是通过输入输出信号与时钟信号配合通过时序得到具体的通信数据。spi通信协议一般需要cs、sclk、miso、mosi,而在屏幕上一般不需要miso即不需要从设备到主机的输入。
学习屏幕的驱动必须要先了解屏幕的驱动ic,小屏的驱动ic大多是内置在屏内的,不同的驱动ic需要使用不同的驱动程序驱动,一般不能共用程序,不同的ic的命令表是不同的,屏幕的驱动就是通过命令表中的命令控制像素的显示,所以驱动屏幕的程序主要是看ic对应的命令表。
点亮一个屏幕最关键的三点
1、屏的初始化过程,即在屏reset 后有一些必要的参数需要通过命令写入对应的寄存器,如电压、像素、刷新速度等,ic不同这个过程都不太一样。这一步决定屏幕是否能亮起,亮起后会是花屏状态。
2、每个像素的颜色值是几位,值是如何分布的,如:单色屏一个像素一位只能黑白;四灰度屏一个像素两个位,可以描述四种颜色; rgb565 屏,一个像素两个字节,2的16次方种颜色;还有rgb888,一个像素三个字节,2的24次方种颜色。这个决定了我们应该如何配置buffer大小一般以为 width x height x (color_bit / 8 ) 个字节来作用buffer。这一步决定你是否能按自己设定的颜色清屏。
3、向屏幕写入数据时的排列顺序,lcd 点阵屏有的是按一行一行的顺序将byte 写入屏中,有的是按一列8行、一列8行写入,有的带灰度的可能是一列4行、一列4行的写入,这里需要看对应的手册。这一步决定你是否能按自己设定的位置写入正确颜色的像素。