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注册:如图所示 分离概念: 分离概念主要 ...
随机推荐
- 全套visio版本安装教程及下载地址
1:visio 2003 安装教程及下载地址 https://mp.weixin.qq.com/s/vhJUagKBz3vM-Dru0cwYow 2:visio 2007 安装教程及下载地址 http ...
- X264码率控制总结1——ABR,CQP,CRF
1. X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF.这三种方式的优先级是ABR > CQP > CRF. if ( bitrate ) rc_me ...
- 用 set follow-fork-mode child即可。这是一个 gdb 命令,其目的是告诉 gdb 在目标应用调用fork之后接着调试子进程而不是父进程,因为在 Linux 中fork系统调用成功会返回两次,一次在父进程,一次在子进程
GDB的那些奇淫技巧 evilpan 收录于 Security 2020-09-13 约 5433 字 预计阅读 11 分钟 709 次阅读 gdb也用了好几年了,虽然称不上骨灰级玩家,但 ...
- CentOS7中下载RPM及其所有的依赖包
CentOS7中下载RPM及其所有的依赖包 转载beeworkshop 最后发布于2019-09-28 07:43:40 阅读数 1096 收藏 展开 利用 Downloadonly 插件下载 RP ...
- spec2006与spec2000的对比简要说明
ec2006使用说明 2014-10-10 五 性能测试 benchmark 一.工具介绍 SPEC CPU 2006 benchmark是SPEC新一代的行业标准化的CPU测试基准套件.重点测试 ...
- 057.Python前端Django模型ORM多表查询
一 基于对象的查询 1.1 一对多查询 设计路由 from django.contrib import admin from django.urls import path from app01 im ...
- MyBaits 全局配置文件(mybatis-config.xml)
什么是 MyBatis 全局配置文件 MyBatis 全局配置文件包含影响 MyBatis 框架正常使用的功能设置和属性信息. 它的作用好比手机里的设置图标,点击这个图标就可以帮助我们查看手机的属性信 ...
- sizeof 的妙用
(1)sizeof也可以对一个函数调用求值,其结果是函数返回类型的大小,函数并不会被调用.
- Swift系列十 - inout的本质
inout是可以用来在函数内部修改外部属性内存的. 一.inout回顾 示例代码: func test(_ num: inout Int) { num = 20 } var a = 10 test(& ...
- 灵动微电子ARM Cortex M0 MM32F0010 UART1和UART2中断接收数据
灵动微电子ARM Cortex M0 MM32F0010 UART1和UART2中断接收数据 目录: 1.MM32F0010UART简介 2.MM32F0010UART特性 3.MM32F0010使用 ...