ili9341是一款广泛应用于液晶显示屏的控制芯片,常用于驱动240x320分辨率的TFT彩色屏,支持SPI串行接口,具有低功耗、高亮度、高对比度等特点 。通过ili9341驱动,可以实现屏幕显示、图像绘制、字体显示、触摸控制等功能 。
今日头条/西瓜视频/抖音短视频 同名:正点原子原子哥
感谢各位的关注和支持,你们的支持是原子哥无限前进的动力 。
教你如何快速驱动LCD屏前言
LCD屏的驱动对于新手来说,这是一个很大的拦路虎 。学完基础外设后,在这里就不知道怎么下手了 。一个完整的LCD驱动包含的内容是非常多的,最基础的描点,画线,显示字符,后面还有一些UI 。在这里,尽量以浅显的方式驱动LCD,一步一步带大家熟悉掌握LCD屏幕的驱动 。
首先,我们先了解一下LCD(Liquid Crystal Display),即液晶显示器,主要由玻璃基板、背光、驱动IC组成,具体如下图 。
全彩LCD,是一种全彩显示屏,一个像素点可以是RGB565或者RGB888格式(R红色、G绿色、B蓝色就是常说的三基色),可以显示各种颜色 。
至于LCD的显示原理,我们这里就不说了,大家可以通过以下网址进行查看:https://zhuanlan.zhihu.com/p/133306648
通过上图可以清楚看到,单片机要实现LCD的显示,主要是与驱动IC进行通信 。想要进行通信,必须得知道是什么接口,这时候得看LCD模块给你引出什么接口,这是裸屏已经决定了 。LCD接口可以大致分为三种:MCU接口、RGB接口与MIPI接口,具体区别如下:
不同接口的屏幕支持的分辨率都不一样 。我们这里主要讲解的是MCU屏—正点原子2.8寸LCD屏,该屏自带SRAM,驱动简单,大部分单片机都能驱动 。其实还有一类是SPI接口的支持更小分辨率的屏幕 。
为什么说裸屏已经决定了屏幕的接口,我们以正点原子的2.8寸屏为例,该屏的驱动IC是ILI9341,是支持多种通信接口:MCU接口(8/9/16/18位)、3/4线SPI接口、RGB接口(6/16/18位) 。
ILI9341芯片框架图
通过手册查阅,可以发现IM[3:0]引脚可以选择接口,这就需要结合2.8寸LCD屏原理图进行查看了 。
通过上图,我们就很清楚看到,我们的LCD屏幕是支持使用8位或者16位MCU接口的,不过默认的是16位 。所以说,我们的2.8寸LCD屏使用的是16位MCU接口 。使用16位MCU接口的显示速度比8位的要快一倍 。到这里,我们对于LCD的用什么接口已经很清楚了 。
简单来说,LCD屏(MCU接口)驱动的核心:驱动LCD驱动芯片 。
这里我们就需要一些基本的LCD驱动知识:
① 8080时序,LCD驱动芯片一般使用8080时序控制,实现数据写入/读取 。
② 初始化序列(数组),屏厂提供,用于初始化特定屏幕,不同屏幕厂家不完全相同!
③ 画点函数、读点函数(非必须),基于这两个函数可以实现各种绘图功能!
把上面的梳理一下,就是LCD驱动的一般过程了 。
只要我们把每一步都了解清楚,就相当于掌握了LCD屏幕的驱动了 。
一.掌握8080时序
8080时序,称为并口总线时序,常用于MCU屏驱动IC的访问,由Inter提出,也叫英特尔总线 。
接下来,我们来看看LCD 8080时序信号的说明,具体如下表:
简单来说,这里就是我们用来驱动LCD屏幕用到的引脚 。在了解引脚的功能后,就可以通过查看手册的时序图,写出读写函数了 。
8080写时序
首先拉低CS线选中器件,然后根据写入的内容是数据(RS=1)还是命令(RS=1)进行拉低或拉高RS线,在WR的上升沿,把内容写入LCD驱动IC中,最后拉高CS线释放片选,而RD是读信号保持高电平即可 。
推荐阅读
- 马桶水箱配件安装教程,马桶水箱配件什么品牌最好
- 林森浩为什么杀黄洋
- 水基润滑剂品牌
- 上海淮海路商业街怎么走 上海淮海路商业街商场
- 葡萄酒一天喝多少好
- 酷派大神note3开不开机怎么办 酷派大神NOTE3
- 羽扇纶巾笑谈间 千军万马我无懈,羽扇纶巾谈笑间 樯橹灰飞烟灭
- 意大利队vs瑞士队裁判 意大利队vs瑞士队预测
- 漫画老师400字五年级