IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32学习记录0010——TFTLCD液晶显示屏 -> 正文阅读

[嵌入式]STM32学习记录0010——TFTLCD液晶显示屏

一、参考资料

《STM32不完全手册》第18章
《ILI9341数据手册》

二、TFTLCD驱动原理

1、什么是TFTLCD

TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,
注释:
1、它是一个显示屏
2、每个像像素点上设置有一个薄膜晶体管(TFT)
3、就可以克服选通时的串扰,就是每一个像素点,都可以独立控制

2、TFTLCD有什么优势

TFTLCD具有:亮度好、对比度高、层次感强、颜色鲜艳等特点。应用于电视、手机、电脑、平板等各种电子产品。
注释:大家用的多!

3、细节补充

在这里插入图片描述

  • 分辨率:240*320
  • 驱动IC:ILI9341
  • 自带触摸屏(电阻触摸屏)
  • 16位80并口驱动
  • 16位真彩显示(65536色)

注释:
1、分辨率

2、驱动IC

3、电阻触摸屏
在这里插入图片描述

4、16位80并口驱动
在这里插入图片描述
8080介绍:http://www.360doc.com/content/13/1106/16/14528632_327181927.shtml

4、原理图

在这里插入图片描述
在这里插入图片描述

名称对应引脚
D[15:0]:16 位双向数据线PB[15:0]
CS(LCD片选信号)PC9
RS(数据-1/命令-0,标志)PC8
WR(LCD写信号)PC7
RD(LCD读信号)PC6
BL (背光控制信号)PC10

触摸屏接口信号:

名称对应引脚
T MOSIPC3
T MISOPC2
T SCKPC0
T CSPC13

5、16位80并口

看到80并口,
1、知道有4根线和一组IO口
2、知道时序图,会读时序图
四根线+一组IO口

  • CS:片选信号
  • WR:写信号
  • RD:读信号
  • RS:命令-0,数据-1 标志位
  • DB[17:1]
    时序图:
    写数据:
  • CS拉低,RD拉高,RS-0写命令,RS-1写数据,在WR上升沿作用
    在这里插入图片描述

读数据:

  • CS拉低,WD拉高,RS-0读命令,RS-1读数据,在RD上升沿作用在这里插入图片描述

6、ILI9341 时序

ILI9341所用到的数据协议就是80并口,协议可以理解为语言的语法,是一种规则的存在,我们表达的过程当中使用到语法,但是具体的传输内容,交流内容是什么,可以根据具体的语境、需求决定,但是就是需要遵守规则,这里ILI9341使用的就是80并口协议这种传输数据的规则。
在这里插入图片描述
在这里插入图片描述
图片上的数据时ILI9341读写数据时的最小时间,单位是ns

7、TFTLCD 驱动流程

GRAM:graphics RAM,即图像寄存器,在驱动TFT——LCD显示的芯片ILI9341中,存储要显示的图像信息。
在这里插入图片描述

8、RGB565格式说明

在这里插入图片描述
在这里插入图片描述
1、知道一个像素点占两个字节
2、知道每位存储的是什么

9、ILI9341指令格式说明

特别注意 ILI9341 所有的指令都是 8 位的(高 8 位无效),且参数除了读写 GRAM 的时候是 16 位,其他操作参数,都是 8 位的,
这里介绍几个重要指令

(1)0XD3指令

在这里插入图片描述
在这里插入图片描述
只有读出读出ID,才能根据不同的ID进行初始化。

(2)0X36指令

0X36指令: 控制GRAM 指针自增。
在这里插入图片描述
0X36指令,这是存储访问控制指令,可以控制 ILI9341 存储器的读写方向,简
单的说,就是在连续写 GRAM 的时候,可以控制 GRAM 指针的增长方向,从而控制显示方式,连读读GRAM也是一样。

在这里插入图片描述
在这里插入图片描述

(3)0X2A指令

设置X轴坐标。
在这里插入图片描述

(4)X2B指令

设置Y轴坐标。
在这里插入图片描述
X2B指令和X2A指令可以结合起来窗。

(5)X2C指令

X2C指令:写GRAM的显存。
在这里插入图片描述

(6)0X2E指令

X2E指令:读取GRAM的显存。

在这里插入图片描述

三、基本代码

1、硬件连接

在这里插入图片描述

2、lcddev结构体

在这里插入图片描述

3、7个底层接口函数

(1)写寄存器值函数

在这里插入图片描述
在这里插入图片描述

(2)写数据函数

在这里插入图片描述
在这里插入图片描述
注释:这个地方代码有点看不懂,只能理解其作用
关于拿时间换空间,这里是说常规定义的函数执行过程,需要不断的定义变量,然后又释放变量,最终是相当于没有占有存储空间的,但是不断的新建变量的工程需要不断的查询足够的空间地址,是需要花费时间的,而使用宏定义函数,一开始那些变量需要用到的空间就是申请好的,而且在这个的程序执行过程当中都是固定存在的,不需要每一次都靠开辟新的空间,而且地址也是知道的,就是所谓的利用空间换时间。

上面这个是和同学讨论的结果,没有非常的书面化表达,但是可以简单的理解,感谢!

(3)读数据函数

在这里插入图片描述

(4)写寄存器内容函数

在这里插入图片描述

(5)读寄存器内容函数

在这里插入图片描述

(6)开始写GRM函数

在这里插入图片描述

(7)写GRAM函数

在这里插入图片描述
在这里插入图片描述
注释: 关于宏定义的引用是按步骤执行,使用这里就是利用空间换时间的原则调用的函数

四、功能代码

1、初始化函数

(1)GPIO初始化

不要觉得复杂,我们可以先理解,拆分,然后内化,最后你也是可以写出来的哦,不放过,是对代码对起码的尊重。
在这里插入图片描述
在这里插入图片描述
这里用到了复用功能所以复用时钟需要初始化
在这里插入图片描述
PB3-JTCO
PA14-JTCI
这两个引脚的一般功能就是作为JTAG引脚,所以要将题目当做朋友IO口使用时,首先需要开启复用时钟,还有将JTAG功能关闭!

(2)读取驱动ID

在这里插入图片描述

(3)驱动代码

在这里插入图片描述

(5)基本配置函数

在这里插入图片描述

2、LCD坐标设置函数

在这里插入图片描述

3、LCD画点函数

在这里插入图片描述
在这里插入图片描述

4、LCD读点函数

在这里插入图片描述

5、LCD显示字符函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、应用起来

在这里插入图片描述
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:52:58  更:2022-04-30 08:53:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:42:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码