你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32N6570-DK评测】2.LTDC测试使用

[复制链接]
实在太懒于是不想取名 发布时间:2025-2-21 00:57

序言

众所周知,STM32H系列作为高性能芯片,大部分都具有专门为LCD屏幕服务的外设。其中LTDC就是专门的控制LCD屏幕的外设。

image.png

LTDC全称Lcd-Tft Display Controller即LCD刷新控制器,在许多H7系列和其他一些系列上都有。

我们以STM32N6为例介绍如何使用STM32中的LTDC外设。

image.png

LTDC支持多种图像颜色格式,他们通过LTDC的抖动单元统一为RGB格式输出到LCD显示屏中。

image.png

LTDC支持双图层混叠,我们可以单独设置两个图层的内容和透明度,以及对图层进行设置,具有非常高的显示性能和操控性。

CubeMX

我们打开CubeMX查看LTDC选项。由于我们的显示屏是RGB888的,因此设置显示屏刷新模式为RGB888。

image.png

参数设置中,按照LCD屏幕手册输入参数,HSYNC Width设置为5,设置为参考数+1,这是要求。所以设置为5的时候,实际应用的是4.

image.png

设置层数和窗体的起始位置和位置。

image.png

设置帧缓存区的数据格式以及默认透明度,我们拉满就是不透明。

image.png

最后对帧缓存区进行设置,我们设置为和显示窗口一样的大小。

需要注意的是有一些型号需要在这里填入帧缓存区的地址就是存放我们想要显示的内容的地址。但是N6这里是没有地址选项的,我们需要在代码中进行修改。

image.png

紧接着我们还需要检查GPIO引脚是否对应LCD的实际引脚,并且开启两个IO控制LCD的亮灭。

image.png

最后就是LTDC的时钟,根据芯片手册的典型值25MHZ,我们需要从时钟树中拉出来一条25MHZ的时钟。

image.png

代码实现

image.png

我们需要一张图片数据,这里采用ST的例程,一张156X129的RGB565数据。

HAL_LTDC_SetAddress(&hltdc, (uint32_t) dolphin_156x129_565, 0);

设置LTDC的地址,参数分别是ltdc句柄,图画地址以及图层索引。

这样子就可以正常的显示图片了。


  static int i = 255;
  i = i-5;
  if(i < 0)
  {
    i = 255;
  }
  HAL_LTDC_SetAlpha(&hltdc, i, 0);

我们简单的写一个函数让图层0渐渐黯淡即透明度递减。

除此之外,我们可以在这个的基础上添加一个图层,实现两张图的混叠。

image.png

并且额外需要注意的是,STM32N6有着独特的防火墙机制,我们需要为LTDC提供足够高的优先级满足其能够正常的访问内存

收藏 评论0 发布时间:2025-2-21 00:57

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版