|
STM32U5A9DK板上带有一个2.47寸 16.7M彩色的TFT屏幕 ,配合他的4M超大flash 无需外部Flash即可实现高清图片显示,本次来展示如何从零开始使用DSI外设来驱动这块屏幕
首先是DMA2D配置我们配置为MToM模式 即MemoryToMemory,DMA2D外设在一些中高端控制器中都有存在 主要功能就是颜色填充,图像复制(从一个Buffer复制到另一块Buffer),颜色格式转换,透明度混合,听起来很像一块显卡的功能(其实更像是搬运工)。例如在颜色填充的过程中,传统操作是嵌套For循环来不断判断赋值,但是DMA2D我们只需要指定工作在RToM模式,设置填充区域大小 偏移 像素格式 然后打开传输即可完成 即可实现高速的图形渲染。 DMA2D配置参考如下
然后打开DMA2D中断 DSIHost我们配置成Vidoe模式,Command模式看屏幕是否支持
如果要适配其他屏幕 需要参考手册中的时许来配置外设 DK板中的屏幕是2lane
不同屏幕设置参数k可能有差异 图上配置仅供参考 我的屏幕参数如下参考
LTDC控制器配置,相关介绍可以参考如下链接[https://doc.embedfire.com/mcu/stm32/h750prov/hal/zh/latest/book/LTDC_DMA2D.html#ltdc ]()注意选择的是DSI模式 控制线会自动使能
以上就完成了Cubemx初始化 生成代码即可 工程结构如下
我们需要先将CubeU5软件包中的stm32_lcd驱动以及字体文件复制到工程中
宏定义参数以及图像显存地址
函数声明
屏幕初始化序列ST已经给我们写好了 我们直接拿过来用即可,剩下的就是屏幕显存操作,直接拿过来用即可 避免重复造轮子,基本都是操作buffer的操作
这句话是打开DSI时钟,初始化完屏幕后打开, 也就是CLK_P/CLKN开始发送信号 同时复位LCD开始显示 显示效果如下
图片显示的原理也是一样 都是先把图像转换成ARGB8888格式数组 然后操作DMA2D将图像数组搬运到显存中
|
STM32U5 ADC 自校准失败终极解决:VDDA 隔离解除 + 电压调整器就绪实操指南
ST推出一款WiFi6&蓝牙模组
AI工具训练营-用ChatGPT解决HID Keyboard实现的问题
F429I-DISC1体验报告(5) 滚动菜单、语言切换的实现丨国庆开发板测评活动
意法半导体18nm STM32V8震撼登场,获SpaceX星链选用,重新定义高性能MCU未来
F429I-DISC1体验报告(4) 温度可视化动态图表的实现丨国庆开发板测评活动
F429I-DISC1体验报告(3) 画板线条绘制和调色功能的实现丨国庆开发板测评活动
F429I-DISC1体验报告(1)久经沙场,锋芒依旧丨TouchGFX开发F429丨国庆开发板测评活动
《STM32U3线上课程》学习笔记+FLASH存储器的核心特性
《STM32U3线上课程》学习笔记+更丰富的外设兼容和总线矩阵学习和总线矩阵学习
微信公众号
手机版
感谢分享可以试试做个表盘设计的Demo