博客
关于我
stm32 DMA2D知识点
阅读量:469 次
发布时间:2019-03-06

本文共 1547 字,大约阅读时间需要 5 分钟。

DMA2D技术说明

DMA2D是什么?

DMA2D(Direct Memory Access 2D)是一种高效的图像处理接口,主要用于LCD显示屏的图像数据传输和存储管理。它通过DMA(直接内存访问)技术,能够快速、低延迟地将数据从显存传输到显示屏,或者从前景层存储器复制数据到目标区域。

DMA2D的工作模式

DMA2D支持五种工作模式,分别用于不同场景的图像处理:

  • 寄存器到存储器模式

    • 主要用于清屏操作,即将显示屏刷新为单色效果。
    • 该模式下,DMA2D将寄存器中的颜色值填充到存储器中。
  • 存储器到存储器模式

    • 用于从一个存储器复制数据到另一个存储器。
    • 常见应用是将摄像头输出图像复制到LCD显存中。
  • 存储器到存储器模式,带颜色格式转换

    • 支持将RGB888格式的位图转换为RGB565格式,并显示到LCD上。
    • 适用于需要颜色格式转换的显示场景。
  • 存储器到存储器模式,带颜色格式转换和混合

    • 不仅支持颜色格式转换,还能进行颜色混合。
    • 可用于显示带透明度效果的图像。
  • 存储器到存储器模式,带颜色格式转换和混合,前景色固定

    • 类似模式4,但前景色颜色值固定。
    • 适用于需要固定的前景色混合显示。
  • 寄存器到存储器模式详解

    在寄存器到存储器模式下,DMA2D主要用于清屏操作。以下是具体实现步骤:

  • 设置DMA2D工作模式

    • 初始化DMA2D为寄存器到存储器模式(R2M)。
  • 配置颜色格式

    • 设置输出颜色格式(OPFCCR)与LCD颜色格式一致,例如RGB565。
  • 设置填充区参数

    • 设置输出填充区首地址(OMAR)和行偏移(OOR)。
  • 启动传输

    • 设置DMA2D开始传输,并等待完成。
  • 具体应用示例

    • 在正点原子中,LTDC_Fill函数用于填充矩形区域,支持频繁调用以提升性能。
  • 存储器到存储器模式详解

    存储器到存储器模式用于从前景层复制数据到目标区域,支持颜色填充和图像复制:

  • 设置DMA2D工作模式

    • 初始化DMA2D为存储器到存储器模式(M2M)。
  • 配置源和目标地址

    • 设置前景层数据首地址(FGMAR)和输出存储器地址(OMAR)。
  • 设置行偏移

    • 前景层和目标区域的行偏移分别设置。
  • 设置颜色格式

    • 前景层和目标区域都采用RGB565格式。
  • 启动传输

    • 启动DMA2D,等待传输完成。
  • 具体应用示例

    • 在安富莱中,_DMA2D_Copy函数用于从前景层复制数据到目标区域,支持大图像绘制。
  • 模式3:存储器到存储器模式,带颜色格式转换

    这种模式支持颜色格式转换和混合,适用于复杂图像处理:

  • 配置前景层和背景层数据地址

    • 设置前景层(FGMAR)和背景层(BGMAR)数据地址。
  • 设置混合参数

    • 配置透明度和颜色混合方式。
  • 启动传输

    • 启动DMA2D,等待传输完成。
  • 具体应用示例

    • _DMA2D_MixColorsBulk函数用于混合前景层和背景层数据,支持透明度设置。
  • 模式4:存储器到存储器模式,带颜色格式转换和混合

    这种模式支持前景层和背景层的颜色混合,适用于复杂的混合效果:

  • 配置颜色格式

    • 前景层和背景层采用ARGB8888格式,输出区采用RGB565格式。
  • 设置混合参数

    • 配置透明度和颜色混合方式。
  • 启动传输

    • 启动DMA2D,等待传输完成。
  • 具体应用示例

    • _DMA2D_AlphaBlendingBulk函数用于混合两个位图,支持复杂图像显示。
  • 模式5:存储器到存储器模式,带颜色格式转换和混合,前景色固定

    这种模式与模式4类似,但前景色颜色值固定:

  • 配置前景层颜色

    • 设置固定的前景色颜色值。
  • 配置颜色格式

    • 前景层颜色格式为ARGB8888,背景层和输出区颜色格式可配置。
  • 启动传输

    • 启动DMA2D,等待传输完成。
  • 具体应用示例

    • _DMA2D_DrawAlphaBitmap函数用于显示带透明度的ARGB8888格式位图。
  • 转载地址:http://crjdz.baihongyu.com/

    你可能感兴趣的文章
    Sql Server之旅——第十站 看看DML操作对索引的影响
    查看>>
    双十一来了,别让你的mongodb宕机了
    查看>>
    深入探索Android热修复技术原理读书笔记 —— 热修复技术介绍
    查看>>
    Python大神编程常用4大工具,你用过几个?
    查看>>
    一文带你了解图神经网络
    查看>>
    linux kernel version magic 不一致导致的模块 加载 (insmod) 不上
    查看>>
    centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解
    查看>>
    MySQL 1064 You have an error in your SQL syntax 错误解决办法
    查看>>
    【Flink】Flink 底层RPC框架分析
    查看>>
    MySQL错误日志(Error Log)
    查看>>
    oracle使用DBMS_RANDOM包生成随机数据
    查看>>
    C++高精度模板
    查看>>
    联赛模拟测试23 D. 真相 思维题
    查看>>
    SSISDB2:SSIS工程的操作实例
    查看>>
    业务工作流平台设计(八)
    查看>>
    解决:angularjs radio默认选中失效问题
    查看>>
    windows环境下安装zookeeper(仅本地使用)
    查看>>
    Docker学习(十三)- docker rm 命令详解
    查看>>
    微信小程序setData子元素
    查看>>
    缓冲区溢出实例(一)--Windows
    查看>>