LTDC_DMA2D驱动实验
STM32F429芯片使用LTDC、DMA2D、及RAM存储器,构成了一个完整的液晶控制器。LTDC负责不断刷新液晶屏(将数据从显存搬运到液晶屏),DMA2D用于图像数据搬运、混合及格式转换(将数据搬运到显存),RAM存储器作为显存。
一、LTDC初始化结构体
1)、设置行同步信号HSYNC的极性,即HSYNC有效时的电平。
2)、设置垂直同步信号CSYNC的极性
3)、设置数据使能信号DE的极性
4)、设置像素时钟信号CLK的极性,可设置为上升沿,或下降沿,表示RGB数据信号在CLK的哪个时刻被采集
5)、设置行同步信号的的宽度——HSW-1
6)、设置垂直同步信号的的宽度——VSW-1
7)、HSW+HBP-1的值
8)、VSW+VBP-1的值
9)、HSW+HBP+有效宽度-1的值
10)、VSW+VBP+有效高度-1的值
11)、HSW+HBP+有效宽度+HFP-1的值
12)、VSW+VBP+有效高度+VFP-1的值
13)、配置背景的红色值
14)、配置背景的绿色值
15)、配置背景的蓝色值
LTDC初始化结构体配置好了与液晶屏通信的基本时序,还有像素格式、显示地址等诸多参数需要使用LTDC层级初始化结构体完成。
二、LTDC层级初始化结构体
1)、确定该层显示窗口的边界
2)、设置该层数据的像素格式
3)、设置该层恒定的透明度常量Alpha(LTDC_ConstantAlpha)
4)、配置该层的默认颜色值,分别为蓝色、绿色、红色分量及透明度分量
5)、设置混合系数BF1和BF2。每一层实际显示的颜色都需要使用透明度参与运算,计算出不包含透明度的直接RGB颜色值,然后才传输给液晶屏(因为液晶屏本身没有透明度的概念)
计算公式为 BC=BF1*C + BF2*Cs
本结构成员可以设置BF1/BF2参数是使用CA配置还是PA*CA配置。配置成CA表示混合系数中只包含恒定的Alpha值,即像素本身的Alpha不会影响混合效果;若配置成PA*CA,则混合系数中包含像素本身的Alpha值,即把像素本身的Alpha加入混合运算中,其中的恒定Alpha值即透明度百分比(配置的Alpha值/0xFF)
BC=恒定Alpha*C + (1-恒定Alpha)*Cs
6)、设置该层的显存首地址
7)、设置当前层的行数据长度(行有效像素个数*每个像素的字节数 + 3)
8)、设置从某行的有效像素起始位置到下一行起始位置出的数据增量
9)、设置当前层的显示行数
将这些配置写入LTDC的层级控制寄存器中,完成初始化。初始化完成后,LTDC会不断把显存空间的数据传输到液晶屏进行显示,可以直接修改或使用DMA2D修改显存中的数据,从而改变显示的内容。
三、DMA2D初始化结构体
1)、配置DMA2D的传输模式
2)、配置输出PFC(像素格式转换器)的颜色格式,即它将要传输给显存的格式
3)、配置DMA2D的寄存器颜色值(蓝色、绿色、红色分量及透明度分量)
4)、配置输出FIFO的地址,DMA2D的数据会被搬运到该空间,一般把它设置为本次传输显示位置的起始地址
5)、配置行偏移量(以像素为单位),行偏移量会被添加到各行的结尾,用于确定下一行的 起始地址。
行偏移量的值=行宽度-线的宽度
6)、配置DMA2D一共要传输多少行数据
7)、配置每行有多少个像素点
配置完将这些参数写入DMA2D的控制寄存器,然后再调用DMA2D_StartTransfer函数开启数据传输及转换。
液晶显示实验编程要点
1)、初始化LCD驱动的引脚
2)、使用LTDC初始化结构体,配置液晶屏的控制参数
3)、使用LTDC的层级初始化结构体,配置各层的控制参数
4)、直接操控显存,控制液晶屏显示图形
5)、使用DMA2D快速绘制直线及矩形
LTDC_DMA2D驱动实验的更多相关文章
- (三)内存 SDRAM 驱动实验 (杨铸 130 页)(勉强能懂个大概)
SDRAM 芯片讲解: 地址: 行地址 (A0-A12) 列地址 (A0-A8) 片选信号(BA0 BA1)(L-BANK)(因为SDRAM有 4片) 两片SDRAM 连线唯一区别在 UDQM ...
- 10-8位7段数码管驱动实验——小梅哥FPGA设计思想与验证方法视频教程配套文档
芯航线--普利斯队长精心奉献 实验目的: 1.实现FPGA驱动数码管动态显示: 2.使用In system sources and probes editor工具,输入需要显示在数码管上的的数据, ...
- IMX6ULL开发板Linux_WIFI驱动实验
1.在迅为i.MX6ULL开发板上使用的是 usb 接口的 RTL8723 wifi 模块,原理图如下所示:可以看到 RTL8723 模块的接口非常简单,只有 DP1 和 DM1 连接到 usb HU ...
- android驱动学习---led实验
======================== 驱动: 内核:android-kernel 2.6.36 (必须对应你的板子上内核,不然会出现insmod错误) 目的:通过android应用层用户 ...
- 信息安全系统设计基础实验四 20135210&20135218
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级: 1352 姓名:程涵,姬梦馨 学号:20135210,20135218 ...
- 【转】S3C2440存储系统-SDRAM驱动
SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)也就是通常所说的内存.内存的工作原理.控制时序.及相关控制器的配置方法一直是嵌入式系统 ...
- 25.Linux-Nor Flash驱动(详解)
1.nor硬件介绍: 从原理图中我们能看到NOR FLASH有地址线,有数据线,它和我们的SDRAM接口相似,能直接读取数据,但是不能像SDRAM直接写入数据,需要有命令才行 1.1其中我们2440的 ...
- 成都国嵌-嵌入式linux必修实验手册…
emouse收集整理,转载请注明: emouse的技术专栏 博客园:http://www.cnblogs.com/emouse/ CSDN:http://blog.csdn.net/haozi_198 ...
- 驱动程序分层分离概念_总线驱动设备模型_P
分层概念: 驱动程序向上注册的原理: 比如:输入子程序一个input.c作为一层,下层为Dev.c和Dir.c,分别编写Dev.c和Dir.c向上Input.c注册:如图所示 分离概念: 分离概念主要 ...
随机推荐
- Spring Cloud Alibaba(9)---Sentinel概述
Sentinel概述 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流.流量整形.熔断降级.系统自适应保护.热点防 ...
- 『动善时』JMeter基础 — 21、HTTP Cookie管理器的使用
目录 1.在HTTP信息头管理器组件中添加Cookie信息 (1)测试计划内包含的元件 (2)请求取样器内容 (3)HTTP信息头管理器内容 (4)查看结果 2.使用HTTP Cookie管理器组件来 ...
- Zabbix agent端 配置
Zabbix agent端 配置 agent端环境 zabbix-client:RHEL8 IP:192.168.121.11 一.安装 Zabbix 源 [root@zabbix-client ~] ...
- C++知识点案例 笔记-5
1.关系运算符重载 2.类型转换函数重载 3.转换构造函数 4.函数模板 5.显式实例化 6.类模板外定义模板函数 1.关系运算符重载 ==关系运算符重载== //直接(按分数)比较两个对象 #inc ...
- 6.3-4 zip、unzip
zip:打包和压缩文件 zip压缩格式是Windows与Linux等多平台通用的压缩格式.和gzip命令相比,zip命令压缩文件不仅不会删除源文件,而且还可以压缩目录. zip命令的参数选 ...
- redis 和 mysql 的主从复制
1. mysql主从复制 (1) 为什么要做主从复制? 1.在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写 ...
- C语言编程 菜鸟练习100题(31-40)
[练习31]判断质数 0. 题目: 判断质数 1. 分析: 质数(prime number),指大于 1的.且除 1 和本身以外没有其他因数的自然数. 2. 程序: #include <stdi ...
- JAVA基础语法-day01
JAVA基础语法 1.注释 单行注释--// 多行注释--/* */ 文档注释--/** */ 2.标识符 只能大小写字母,$,下划线开头,其它不行. 3.数据类型 基本数据类型--整数,浮点,字符, ...
- C# Asp.Net 实现PPT/PDF转成图片(不依赖office)
最近公司有个需求,将PPT课件转成图片列表,然后在前端展示成轮播图,于是一开始通过Microsoft.Office.Interop.PowerPoint包实现了这个需求具体代码如下: /// < ...
- xtrabackup(innobackupex)使用详解
innobackupex实际上是percona-xtrabackup的perl整合脚本,功能当然更强大一些. xtrabackup备份实际上是在线的物理热备,为什么和么说呢,因为实际上他是以拷贝mys ...