BearPi Std 板从入门到放弃 - 引气入体篇(11)(SPI驱动 TFT LCD(ST7789))

简介

SPI 驱动 ST7789V2 进行字符显示, 并且使用中文库显示中文信息。
	主芯片: STM32L431RCT6
	LED : PC13 \ 推挽输出即可 \ 高电平点亮
	串口: Usart1 / LPUART
	SPI(与LCD数据传输) : SPI2
	LCD_RESET(复位引脚):  PC7 \  推挽输出即可 
	LCD_POWER(背光灯电源引脚): PC6 \  推挽输出即可 
	LCD_WR_RS(片选引脚): PB15 \  推挽输出即可 

电路原理图

TFT LCD 电路原理图

在这里插入图片描述

知识点

TFT LCD (ST7789V2)

256K Color

TFT-LCD模块是一种液晶显示器,其每一个像素上都设置有一个薄膜晶体管(TFT),以实现对每个像素的独立控制。262K Color代表的是液晶显示器上每个像素的颜色变化数量,即能够显示262,144种颜色。这种色彩深度的实现,是通过调节液晶光栅的占空比,利用人眼的视觉暂留效应来改变每个色点亮度的方式完成的。
------------------------------------------------------------------------------------------------------------

计算上,对于262K颜色,由于采用的是18位色来计算,因此每个像素由18位二进制数来控制其颜色。从0到2的18次方减1,总共可以有262,144种不同的颜色组合。具体来看,如果每个像素的颜色用8位二进制数表示,我们就叫它8位图,它可以表达2的8次方即256种颜色;如果每个像素的颜色用16位二进制数表示,我们就叫它16位图,它可以表达2的16次方即65536种颜色。

source line

Source line(源极线)是指位于液晶面板底部的一条水平线路,每个像素都有一个对应的源极线。它的作用是将来自驱动器的信号传输到像素电极上,以控制像素的亮度和颜色。
720 source line = 240*RGB (H) # 其中H代表横向

gate line

Gate line(栅极线)是指位于液晶面板顶部的另一条水平线路,每行像素都有一个对应的栅极线。它的作用是通过控制液晶分子的方向来控制光的透过程度,从而实现图像显示。
320 gate line = 320(V) # 其中V代表纵向

240*RGB (H) *320(V) 分辨率

240*RGB (H) *320(V) 表示显示器的分辨率为240像素宽,每个像素由红、绿、蓝三个子像素组成(RGB),水平方向有240个这样的像素(H表示水平方向),垂直方向有320个这样的像素(V表示垂直方向)。

Display Colors

Display Colors (Color Mode) 是指显示器的颜色模式,它决定了屏幕上显示的颜色数量和颜色深度。
Full Color: 262K, RGB=(666) max., Idle Mode Off 表示全彩模式,每个像素由红、绿、蓝三个子像素组成,总共有262,000种不同的颜色组合。在这种模式下,每个像素可以独立控制其红、绿、蓝三个通道的亮度,因此可以显示更多的颜色。同时,全彩模式的空闲模式为关闭状态,即在没有信号输入时,显示器不会自动调整颜色。这种模式适用于需要显示大量不同颜色的场合,如电视、电脑显示器等。
Color Reduce: 8-color, RGB=(111), Idle Mode On 表示减色模式,每个像素由红、绿、蓝三个子像素组成,总共只有8种不同的颜色组合。在这种模式下,每个像素只能选择其中一种颜色进行显示,因此无法显示更多颜色。同时,减色模式的空闲模式为开启状态,即在没有信号输入时,显示器会自动调整颜色以节省能源。这种模式适用于对颜色要求不高的场合,如手机、平板电脑等。

Interface Mode

IM3、IM2、IM1、IM0是液晶显示屏控制器中常用的接口模式。这些接口模式是由硬件设计者根据需求选择的,可以通过IM0、IM1、IM2这3个引脚的上下拉电阻来灵活选择芯片的总线方式。

LCD_WR_RS (CX)

Write to Register or Display RAM

ST7789 设置列地址

LCD_WR_RS (D/CX):
0 -> Write Command
1 -> Write Data
在这里插入图片描述

ST7789 设置行地址

在这里插入图片描述

ST7789 设置该区域各像素点值

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

SPI (Serial Peripheral Interface)
 串行外设接口,是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。
 SPI主要采用四线制:
	SS(Slave Select):从设备使能信号,由主设备控制。;
	SCK (Serial Clock):时钟信号线,由主设备发出;
	MOSI (Master Output Slave Input): 主设备输出 / 从设备输入引脚;
	MISO(Master Input Slave Output):主设备输入 / 从设备输出引脚。
CPOL和CPHA是两个与串行通信相关的控制信号。

CPOL:表示时钟的极性(Clock Polarity)。当CPOL为高电平时,表示数据在时钟的上升沿被采样;当CPOL为低电平时,表示数据在时钟的下降沿被采样。
CPHA:表示数据的相位(Clock Phase)。当CPHA为0时,表示数据在第一个边沿(上升沿或下降沿)被采样;当CPHA为1时,表示数据在第二个边沿(下降沿或上升沿)被采样。
这两个控制信号通常用于串行通信中的数据传输速率和同步方式的控制。

下图是TFT的写采样示例, WRx是上升沿 与 第二边沿采样
在这里插入图片描述

步骤

创建项目工程

参考 BearPi Std 板从入门到放弃 - 引气入体篇(1)(由零创建工程到点亮LED)

初始化引脚

  1. 初始化 LCD_RESET、LCD_POWER、LCD_WR_RS
    在这里插入图片描述
  2. 初始化SPI2
    在这里插入图片描述
    默认SPI2 SCK引脚是PB10, 电路图上是PB13, 修改一下
    在这里插入图片描述

生成项目

编译执行

添加用户代码

参考 BearPi LCD 驱动 , 将整个LCD的目录加到项目工程

	int main()
	{
	...
		LCD_Init();
		LCD_Clear(WHITE); // 清屏为白色
	...
	}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/263627.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java自动化测试系列[v1.0.0][常见页面操作处理]

[控制滚动] package util; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement;public class ScrollBarUtil {/*** 控制滚动条向下拉到底* param driver 浏览器驱动*/public static void toBottom…

简单了解一下当前火热的大数据 -- Kylin

神兽麒麟 一、Apache Kylin 是什么?二、Kylin架构结语 一、Apache Kylin 是什么? 由eBay公司中国团队研发,是一个免费开源的OLAP多维数据分析引擎优点 超快的响应速度,亚秒级支持超大数据集(PB以上,千亿记…

这样使用云渲染又快又省钱

我们都知道使用云渲染是要钱的,而且渲染的时间越久,需要的渲染费越多,哪么如何又快又省钱的拿到效果图呢?用炫云的渲染质量,保准让你使用云渲染渲染效果图又快又省钱。 我们使用炫云的时候,根据自己的需求…

互联网加竞赛 python图像检索系统设计与实现

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python图像检索系统设计与实现 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖&#xff0c…

PIC单片机项目(7)——基于PIC16F877A的智能灯光设计

1.功能设计 使用PIC16F877A单片机,检测环境关照,当光照比阈值低的时候,开灯。光照阈值可以通过按键进行设置,同时阈值可以保存在EEPROM中,断电不丢失。使用LCD1602进行显示,第一行显示测到的实时光照强度&a…

BUUCTF-Linux Labs

Linux Labs 根据题目给出的内容,在kali中连接靶机,输入密码进入命令行模式 ls发现什么都没有,有可能进入到了一个空文件夹 cd .. 切换到上一层目录,ls查看此目录下的内容,发现flag.txt文件,查看文件是flag …

听GPT 讲Rust源代码--src/tools(22)

File: rust/src/tools/tidy/src/lib.rs rust/src/tools/tidy/src/lib.rs是Rust编译器源代码中tidy工具的实现文件之一。tidy工具是Rust项目中的一项静态检查工具,用于确保代码质量和一致性。 tidy工具主要有以下几个作用: 格式化代码:tidy工具…

Lang–Kobayashi方程实现混沌python实现混沌序列图像

Lang–Kobayashi方程描述为: 第一部分(Drive laser)是描述的驱动激光器,第二部分(Response laser)描述的是响应激光器。实验结构图如下: 虚线框表示响应激光器中的闭环配置。开环中响应激光器无…

beaglebone black狗板,交叉编译Qt5(eglfs)

1. 下载buildroot-2023.023.7版本 make beaglebone_qt5_defconfig 然后编译,出现错误大多数是因为下载不了包,用bing搜索找到放到对应的dl目录下,最终完成编译。 备注:用系统默认配置,不要参考网上的,网…

天津web前端就业培训班,Web机构选择重点

Web前端培训是目前非常热门的培训领域之一。很多领域都会涉及到web前端开发,比如传统互联网、房地产、金融、游戏、影视传媒等行业都需要web前端技术的支持。越来越多的企业和个人也需要建立自己的网站和移动应用程序,因此市场对web前端工程师的需求是非…

Docker 学习总结(80)—— 轻松驾驭容器,玩转 LazyDocker

前言 LazyDocker 是一个用户友好的命令行工具,简化了 Docker 的管理。它能够通过单一命令执行常见的 Docker 任务,如启动、停止、重启和移除容器。LazyDocker 还能轻松查看日志、清理未使用的容器和镜像,并自定义指标。 简绍 LazyDocker 是一个用户友好的 CLI 工具,可以轻…

Linux基本内容学习

Linux 命令 文件命令 命令释义语法格式lslist,用于显示目录中文件及其属性信息ls [参数名] [文件名]cdchange directory,用于更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径,若省略不写则会跳转至当前…

使用GitZip下载GitHub指定文件

目录 一、GitZip二、安装GitZip三、链接GitHub四、检验是否安装成功五、总结 一、GitZip GitZip是一个非常实用的浏览器插件,它主要有以下几个优点: 下载指定文件:在我们浏览Github时,如果只想下载某个子目录的内容,…

【爬虫软件】孔夫子二手书采集

项目演示 孔网爬取图书信息 目录结构 [ |-- api-ms-win-core-synch-l1-2-0.dll, |-- api-ms-win-core-sysinfo-l1-1-0.dll, |-- api-ms-win-core-timezone-l1-1-0.dll, |-- api-ms-win-core-util-l1-1-0.dll, |-- api-ms-win-crt-conio-l1-1-0.dll, |-- api…

STL中优先队列(堆)的详解

文章目录 priority_queue的基本介绍堆(heap)堆的概念与结构 priority_queue 的介绍与使用 priority_queue的基本介绍 这个priority_queue翻译成中文就是优先级队列,但其实我们很难去一眼看出他的意思到底是什么,他的逻辑结构实际上类似于数据结构中的堆…

王美莲(瑞美)在博鳌乡村振兴产业发展大会荣获“乡村振兴带头人”殊荣

近日,博鳌乡村振兴产业发展大会2023年会,在博鳌亚洲论坛国际会议中心隆重召开。本届大会由中国乡村发展协会指导,中国民族贸易促进会、博鳌乡村振兴产业发展大会组委会主办,深圳市益米播科技有限公司承办。 右:原文化部副部长、国家博物馆首任馆长潘震宙 左:广州市越秀区大塘…

电容内容介绍

0 Preface/Foreword 电容,Capacitance,i.e. 电容量,指在给定电位差下自由电荷的储存量,符号为C,单位为F(法拉)。 电容,指容纳电荷的能力。任何静电场都是由许多电容组成&#xff0…

HTML---盒子模型

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 一.盒子模型概述 HTML中的盒子模型是一种用于描述和布局元素的概念。每个 HTML 元素都可以被表示为一个矩形的盒子,这个盒子包括四个部分:内容区域、内边距、边框和外边距…

图灵日记之java奇妙历险记--数据类型与变量运算符

目录 数据类型与变量字面常量数据类型变量语法格式整型变量浮点型变量字符型变量希尔型变量类型转换自动类型转换(隐式)强制类型转换(显式) 类型提升不同数据类型的运算小于4字节数据类型的运算 字符串类型 运算符算术运算符关系运算符逻辑运算符逻辑与&&逻辑或||逻辑非…

SpringIOC之MethodBasedEvaluationContext

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…