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

STM32U5A9JDK试用---MIPI-DSI屏幕驱动

[复制链接]
短笛君 发布时间:2026-1-28 23:51

STM32U5A9DK板上带有一个2.47寸 16.7M彩色的TFT屏幕 ,配合他的4M超大flash 无需外部Flash即可实现高清图片显示,本次来展示如何从零开始使用DSI外设来驱动这块屏幕

image.png

首先是DMA2D配置我们配置为MToM模式 即MemoryToMemory,DMA2D外设在一些中高端控制器中都有存在 主要功能就是颜色填充,图像复制(从一个Buffer复制到另一块Buffer),颜色格式转换,透明度混合,听起来很像一块显卡的功能(其实更像是搬运工)。例如在颜色填充的过程中,传统操作是嵌套For循环来不断判断赋值,但是DMA2D我们只需要指定工作在RToM模式,设置填充区域大小 偏移 像素格式 然后打开传输即可完成 即可实现高速的图形渲染。

DMA2D配置参考如下

image.png

然后打开DMA2D中断

DSIHost我们配置成Vidoe模式,Command模式看屏幕是否支持

image.png

如果要适配其他屏幕 需要参考手册中的时许来配置外设 DK板中的屏幕是2lane

image.png

不同屏幕设置参数k可能有差异 图上配置仅供参考image.pngimage.png

我的屏幕参数如下参考

image.png

image.png

LTDC控制器配置,相关介绍可以参考如下链接[https://doc.embedfire.com/mcu/stm32/h750prov/hal/zh/latest/book/LTDC_DMA2D.html#ltdc ]()注意选择的是DSI模式 控制线会自动使能

image.png

image.png

以上就完成了Cubemx初始化 生成代码即可

工程结构如下

image.png

我们需要先将CubeU5软件包中的stm32_lcd驱动以及字体文件复制到工程中

#define VFP 50
#define LCD_WIDTH 480
#define VBP 12
#define LCD_FRAME_BUFFER 0x200D0000
#define HACT 480
#define VSYNC 1
#define HFP 1
#define VACT 481
#define IMAGE_HEIGHT 240
#define HBP 1
#define IMAGE_WIDTH 320
#define LCD_HEIGHT 481
#define HSYNC 2

宏定义参数以及图像显存地址

static uint32_t SetPanelConfig(void);
static void CopyBuffer(uint32_t *pSrc, uint32_t *pDst, uint16_t x, uint16_t y, uint16_t xsize, uint16_t ysize);
int32_t LCD_FillRGBRect(uint32_t Instance, uint32_t Xpos, uint32_t Ypos, uint8_t *pData, uint32_t Width,
                            uint32_t Height);
int32_t LCD_FillRect(uint32_t Instance, uint32_t Xpos, uint32_t Ypos, uint32_t Width, uint32_t Height,
                         uint32_t Color);
int32_t LCD_GetXSize(uint32_t Instance, uint32_t *Xsize);
int32_t LCD_GetYSize(uint32_t Instance, uint32_t *Ysize);
int32_t LCD_GetFormat(uint32_t Instance, uint32_t *Format);

函数声明

image.png

屏幕初始化序列ST已经给我们写好了 我们直接拿过来用即可,剩下的就是屏幕显存操作,直接拿过来用即可 避免重复造轮子,基本都是操作buffer的操作

image.png

LCD_Set_Default_Clock();

这句话是打开DSI时钟,初始化完屏幕后打开, 也就是CLK_P/CLKN开始发送信号 同时复位LCD开始显示

显示效果如下

image.png

图片显示的原理也是一样 都是先把图像转换成ARGB8888格式数组 然后操作DMA2D将图像数组搬运到显存中

image.png

image.png
image.png
image.png
收藏 评论1 发布时间:2026-1-28 23:51

举报

1个回答
STMCU-管管 回答时间:3 天前

感谢分享可以试试做个表盘设计的Demo

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