博客
关于我
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/

    你可能感兴趣的文章
    Visual Studio展开和折叠函数代码
    查看>>
    android计算程序运行耗时
    查看>>
    opencv中Assert()函数
    查看>>
    快上车!Java技术开发大厂直通车马上启动!
    查看>>
    又涨了!2021 年 5 月程序员工资统计新鲜出炉,网友:还是Java程序员牛逼~
    查看>>
    学习进度笔记
    查看>>
    MyBatis入门十二:预防SQL注入攻击;(${}和#{}的区别)
    查看>>
    JavaScript学习手册(53)
    查看>>
    数据库事务的四大特性
    查看>>
    冒烟测试与回归测试的区别
    查看>>
    xshell设置选中文本即复制
    查看>>
    【面向CSS--2.基础部分】
    查看>>
    [Maven]构建配置文件
    查看>>
    [Maven]配置文件
    查看>>
    【OAuth2】Spring Security OAuth2 源码分析
    查看>>
    [MySQL] error 1292 数据类型错误
    查看>>
    socket长连接所用到的八大技术
    查看>>
    gitignore_global设置
    查看>>
    Taro学习手册(四)—— Taro的样式尺寸
    查看>>
    photon磁力下载工具
    查看>>