当前位置: 首页 > news >正文

芯课堂 | SWM34S系列驱动TFT-LCD显示模组应用基本注意事项

1、确认硬件的连接、包括电源、地、RGB 数据线、DCLK\DE\HSYNC\VSYNC 等,显示模组有 DISP、RESET、CS、SCL、SDA 等。

2、确认各电压的正常,包括电源,部分有 IOVCC、VGL、VGH、VCOM 等电压

3、如果应用的 TFT-LCD 模组非演示例程中已适配调试的规格,先用BSP库例程,即“Lib\LCD\SimplLCD_RGB”进行驱动,此例程功能单一,适合应用驱屏调试应用。

采用演示例程已适配的显示模组,可以直接应用有UI交互操作的例程,接近于产品应用的开发。

4、部分 TFT-LCD 模组需要初始化通讯,如 TFT-LCD 模组规格书中 COG(chip on glass) 芯片 ST7701S、NT35510 等,必须要 向 TFT- - LCD供应商索取正确的初始化应用通讯程序,参考示例(这点非常重要!!!市面上的屏各式各样,即使相同的 COG芯片,由于模组不一致,初始化代码也不尽相同,MCU厂家无法提供对于 TFT-LCD 差异化的配套支持),COG 芯片规格书,以确保初始化通讯的成功。通常此通讯方式为 3 线通讯,部分 COG 芯片不一定符合 SPI 硬件模块的方式,且只在初始过程中应用,速度要求不高,建议采用普通 IO 端口方式进行应用(即软件模拟 SPI 通讯)。

5、在 SimplLCD_RGB 例程中,先设定分辨率参数 LCD_HDOT、LCD_VDOT,和 LCD_DIRH。TFTLCD 模组是横屏扫描应用,LCD_DIRH 定义为 0,反之则为 1。

6、调整 LCDC 模块的初始化接口 void RGBLCDInit(void) 的参数,包括 HFP、HBP、VFP、VBP、HsyncWidth、VsyncWidth。这些参数的设置值,一般参考 TFT-LCD 模组规格书中的有关驱动的 RGB 时序参数

LCD_initStruct.ClkDiv = 8;//4;

LCD_initStruct.Format = LCD_FMT_RGB565;

LCD_initStruct.HnPixel = LCD_HDOT;

LCD_initStruct.VnPixel = LCD_VDOT;

LCD_initStruct.Hfp = 4;//64;//10;

LCD_initStruct.Hbp = 5;//8;//20;

LCD_initStruct.Vfp = 25;//4;//4;

LCD_initStruct.Vbp = 10;//4;

LCD_initStruct.HsyncWidth = 5;

LCD_initStruct.VsyncWidth = 6;//2;

ClkDiv:像素时钟 DCLK 的频率设置,在系统时钟的基础上进行分频。比如系统时钟为 40MHz,ClkDiv 值为 2,那么 DCLK 的频率值为 20MHz。

Format:针对 RGB 接口屏,可以设置为 RGB565、RGB888 两种方式。SWM34SRET6-50/SWM34SCET6-50 型号,驱动端口不足够驱动RGB888 的 TFTLCD 模组。

注意: 针对小尺寸的 TFT-LCD 模组,采用 RGB565 相比 RGB888 驱动方式,总体显示不会有明显的不同。对颜色分阶很细腻的画面,比较细致对比欣赏时,会存在一定的差异。但 RGB565 接口可以节省端口需求,性价比有优势,所以小尺寸 TFT-LCD 模组采用 RGB565 方式是常用方式。 所以,建议采用 RGB565 的方式,这样可以节省驱动的端口需求。在UI 设计 中,尽量避免过于细腻的颜色过渡分阶即可(如光晕、渐变效果)。

HnPixel:LCD_HDOT 水平显示分辨率。通常 TFT-LCD 模组规格书对分辨率的描述,如 480(RGB)*272、800(RGB)*480、480(RGB)*800,针对 RGB 描述的点定义位水平方向的分辨率。最大取值为 1024。

VnPixel:LCD_VDOT 垂直显示分辨率。最大取值 1024。

Hfp:行同步前肩宽度。最大取值 64。

Hbp:行同步后肩宽度。最大取值 256。

Vfp:场同步前肩宽度。最大取值 64。

Vbp:场同步后肩宽度。最大取值 256。

HsyncWidth:行同步脉冲宽度。最大取值 256。

VsyncWidth:场同步脉冲宽度。最大取值 256。

HsyncInv:行同步脉冲输出的极性反相控制。通常行同步脉冲输出为负极性,某些 TFT-LCD 模组需要正极性方向,可以通过此位进行控制。

VsyncInv:场同步脉冲输出的极性反相控制。通常场同步脉冲输出为负极性,某些 TFT-LCD 模组需要正极性方向,可以通过此位进行控制。

调试过程中,参考 TFT-LCD 模组中的 RGB 时序表中值进行填写,通常会有显示,图像如不完全,可以通过微调HFP、HBP、VFP、VBP 参数进行完善。

如出现无图像显示:

6.1) 先通过调整 DCLK 的分频,先往最大或最小值进行,根据显示的现象,采用往中间值逐步逼近方法进行。如仍然无显示,则固定 TFT-LCD 模组规格书中提及的 DCLK 频率,调整第 6.2 步参数;

6.2) 调整 VFP、VBP 参数。先往最大或最小值进行,根据显示的现象,采用往中间值逐步逼近方法进行。多次调试,获得最佳值。如仍然无显示,则固定接近 RGB 时序表中的值,调整第 6.3 步参数;

6.3) 调整 HFP、HBP 参数。先往最大或最小值进行,根据显示的现象,采用往中间值逐步逼近方法进行。多次调试,获得最佳值。

如仍然无显示,此时可联系 FAE 进行支持协助。

7、通过描画边线查看是否正常满屏显示。显示点亮后,一帧纯色画面比较难判断确认是否显示全屏,可以在黑色背景下,通过描画四条边线方式进行,判断四条边线是否显示正常。

相关文章:

芯课堂 | SWM34S系列驱动TFT-LCD显示模组应用基本注意事项

1、确认硬件的连接、包括电源、地、RGB 数据线、DCLK\DE\HSYNC\VSYNC 等,显示模组有 DISP、RESET、CS、SCL、SDA 等。 2、确认各电压的正常,包括电源,部分有 IOVCC、VGL、VGH、VCOM 等电压 3、如果应用的 TFT-LCD 模组非演示例程中已适配调…...

java8 列表通过 stream流 根据对象属性去重的三种实现方法

java8 列表通过 stream流 根据对象属性去重的三种实现方法 一、简单去重 public class DistinctTest {/*** 没有重写 equals 方法*/SetterGetterToStringAllArgsConstructorNoArgsConstructorpublic static class User {private String name;private Integer age;}/*** lombo…...

鸿蒙开发DevEco Studio Setup 工具认识及使用

1、界面认识 1.1 创建页面之前理解Ability 1.2 理解stage模式 1.3 工程级别目录结构 1.4 模块级别目录...

程序员裁员潮:技术变革下的职业危机

程序员裁员潮:技术变革下的职业危机 一对来自中国的工程师夫妻在美身亡,疑因谷歌裁员致悲剧发生。在技术变革下,裁员对于程序员的影响到底有多大?快来和我们分享一下你的看法吧~ 哎,这是悲哀,让我又想起来…...

Cesium快速入门

文章目录 0.引言1.Cesium环境搭建1.1安装Node.js环境1.2配置Cesium依赖 2.搭建第一个Cesium程序2.1引入源码编译结果2.2创建html文件2.3编写第一个Cesium程序2.4申请许可密钥2.5发布Cesium程序服务 3.界面介绍4.默认控件介绍 0.引言 现有的gis开发方向较流行的是webgis开发&am…...

Android.mk和Android.bp的区别和转换详解

Android.mk和Android.bp的区别和转换详解 文章目录 Android.mk和Android.bp的区别和转换详解一、前言二、Android.mk和Android.bp的联系三、Android.mk和Android.bp的区别1、语法:2、灵活性:3、版本兼容性:4、向后兼容性:5、编译区…...

卡尔曼滤波器原理By_DR_CAN 学习笔记

DR_CAN卡尔曼滤波器 Kalman Filter Recursive Algorithm迭代过程 数学基础正态分布和6-SigmaData FusionCovariance MatrixState Space Representation离散化推导 linearizationTaylor Series2-DSummary Step by Step Derivation of Kalman Gain矩阵求导公式 Prior / Posterio…...

013 异常

文章目录 异常人为创造异常 异常 定义:运行时检测的错误 try:可能触发异常的语句 except 错误类型1 [as 变量1]:处理语句1 except 错误类型2:处理语句2 except Exception:不是以上错误类型的处理语句 else:未发生异常的语句 finally:无论是否发生异常的语句异常处理:保障程序…...

微服务Spring Cloud架构详解

"Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开…...

推荐一一款小众黑科技工具,低调使用建议收藏

wireshark是个啥就不多说了,非常流行的网络封包分析软件。 可以截取各种网络封包,显示网络封包的详细信息。 软件功能十分强大,操作也不复杂。 很多小友都在后台问能不能出一期完整的抓包分析贴,今天给你们安排上了哈。 01 W…...

HiP框架:多AI模型联手,助力机器人驾驭复杂规划大局

原创 | 文 BFT机器人 你的日常待办清单或许只是些稀松平常的小事:清洗堆积如山的碗盘、采购琳琅满目的食品杂货等。在执行这些任务时,你无需逐一写下“捧起那只满是油污的盘子”或“用湿润的海绵仔细擦洗这个盘子”这样的琐碎步骤,因为在你的…...

关于OC中变量相关知识点

众所周知,变量是用来存储数据的 围绕着变量,有很多知识点,总结归纳一下 变量的类型变量的作用区域局部变量全局变量静态变量变量的访问范围属性成员变量实例变量synthesizedynamic… 变量的类型 变量大致分为两大类型: 基本数据…...

机器学习分类模型评价指标总结(准确率、精确率、召回率、Fmax、TPR、FPR、ROC曲线、PR曲线,AUC,AUPR)

为了看懂论文,不得不先学一些预备知识((55555 主要概念 解释见图 TP、FP、TN、FN 准确率、精确率(查准率)、召回率(查全率) 真阳性率TPR、伪阳性率FPR F1-score2TP/(2*TPFPFN) 最大响应分…...

go语言(十一)----面向对象继承

一、面向对象继承 写一个父类 package mainimport "fmt"type Human struct {name stringsex string }func (this *Human) Eat() {fmt.Println("Human.Eat()...") }func (this *Human) Walk() {fmt.Println("Human.Walk()...") }func main() {h…...

一款自动化提权工具

免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。…...

【Qt】最详细教程,如何从零配置Qt Android安卓环境

这里写自定义目录标题 安装Qt Creator & Qt安装下载&安装JDK设置Android SDKAndroid模拟器下载创建android设备(模拟器) Gradle安装问题解决无法打开安卓模拟器Build失败方案一:不适用Qt自带SDK管理器(失败)方…...

spring与spring boot的区别

spring与spring boot的区别 项目配置&#xff1a; Spring&#xff1a; 在Spring中&#xff0c;项目的配置通常需要在XML文件中进行&#xff0c;包括配置数据源、事务管理、AOP等。这需要开发人员手动配置很多细节。 <!-- 在Spring中使用XML配置数据源 --> <bean id…...

http网络编程——在ue5中实现文件传输功能

http网络编程在ue5中实现 需求&#xff1a;在unreal中实现下载功能&#xff0c;输入相关url网址&#xff0c;本地文件夹存入相应文件。 一、代码示例 1.Build.cs需要新增Http模块&#xff0c;样例如下。 PublicDependencyModuleNames.AddRange(new string[] { "Core&q…...

JVM之java内存区域[2](堆、方法区、直接内存)

文章目录 版权声明一 堆1.1 java堆1.2 模拟堆区的溢出1.3 arthas中堆内存相关的功能1.4 设置大小 二 方法区2.1 方法区简介2.2 补充&#xff1a;字符串常量池和运行时常量池2.3 方法区的大小设计2.4 arthas中查看方法区2.5 模拟方法区的溢出2.7 StringTable的练习题 三 神奇的i…...

k8s-kubectl常用命令

一、基础命令 1.1 get 查询集群所有资源的详细信息&#xff0c;resource包括集群节点、运行的Pod、Deployment、Service等。 1.1.1 查询Pod kubectl get po -o wid 1.1.2 查询所有NameSpace kubectl get namespace 1.1.3 查询NameSpace下Pod kubectl get po --all-namespaces…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...