【STM32H743IIT6 系列】通过 LTDC接口驱动的 TFTLCD(RGB屏)显示

news/2025/10/23 13:05:08/文章来源:https://www.cnblogs.com/Skyrim-sssuuu/p/19160270

前言

SDRAM 配置

在开始此篇文章之前,首先要把 SDRAM 配置好,可以看我的上一篇文章:

【STM32H743IIT6 系列】将外部SDRAM作为内部RAM使用的超简单方法

没有将 SDRAM 作为内部 RAM 使用的朋友可以选择性看上面这篇文章。

屏幕

这里我使用的是正点原子的 800 * 480的 4.3寸 RGBLCD 屏幕,如下图所示:

98ca552929a8e47fb30dc98c01e27b74

CubeMX配置

引脚配置

首先要注意的就是 MCU 引脚对应屏幕接口的 LTDC 引脚是否正确,我使用的是反客的 H743,下面是引脚对应图:
(还有 LTDC_BL 背光引脚需要我们自己定义,设置为高电平开漏输出上拉模式即可)
image

LTDC 配置

为了节省资源,我们使用的是 RGB565 模式:

image

Parameter Settings

image

Layer Settings

image

NVIC Settings

image

测试代码

点击查看代码
/* USER CODE BEGIN 0 */uint16_t* fb_addr = (uint16_t*)((uint32_t)0xC0000000);
void LTDC_LCD_Fill(uint16_t* fb, uint16_t color, uint32_t length)
{uint16_t* tmp_fb = fb;for (uint32_t i = 0; i < length; i++) {*(tmp_fb + i) = color;}
}/* USER CODE END 0 *//*** @brief  The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MPU Configuration--------------------------------------------------------*/MPU_Config();/* Enable the CPU Cache *//* Enable I-Cache---------------------------------------------------------*/SCB_EnableICache();/* Enable D-Cache---------------------------------------------------------*/SCB_EnableDCache();/* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();MX_FMC_Init();MX_LTDC_Init();/* USER CODE BEGIN 2 */Set_Current_USART(USART1_IDX);printf("SDRAM 初始化通过!\r\n");/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){SCB_CleanInvalidateDCache();while (!(LTDC->CDSR & LTDC_CDSR_VSYNCS));LTDC_LCD_Fill(fb_addr, (uint16_t)0xF800, (uint32_t)480 * 800 * 2);HAL_Delay(100);SCB_CleanInvalidateDCache();while (!(LTDC->CDSR & LTDC_CDSR_VSYNCS));LTDC_LCD_Fill(fb_addr, (uint16_t)0x07E0, (uint32_t)480 * 800 * 2);HAL_Delay(100);SCB_CleanInvalidateDCache();while (!(LTDC->CDSR & LTDC_CDSR_VSYNCS));LTDC_LCD_Fill(fb_addr, (uint16_t)0x001F, (uint32_t)480 * 800 * 2);HAL_Delay(100);SCB_CleanInvalidateDCache();while (!(LTDC->CDSR & LTDC_CDSR_VSYNCS));LTDC_LCD_Fill(fb_addr, (uint16_t)0xFFFF, (uint32_t)480 * 800 * 2);HAL_Delay(100);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}

效果

b99894a6738494a045e8358f82e10cff

8d3b33b6d7dd19d9a377fa1bf3d4aa27

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/944188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10.22 —— 2024icpc沈阳D,E,B,M

D. Dot Product Game 首先将对两个数组的操作转变为对一个数组的操作:可以发现,对 \(a\) 的某个子数组循环左移 \(r\) 位 与 对 \(b\) 的某个子数组循环右移 \(r\) 位是等价的,因此修改某个情形,只需要对其中一个序…

AGV 系统的内部物流与装配智能化方案设计:应用场景与核心优势详解 - 实践

AGV 系统的内部物流与装配智能化方案设计:应用场景与核心优势详解 - 实践2025-10-23 12:55 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: …

报表过滤框设置默认组织提示死循环

原因:首次赋值当前组织时,BeforeSetItemValueByNumber中过滤范围权限,导致赋值失败,组织字段重新为空,又触发值更新,再次赋值。 解决:实体服务规则中不勾选“值更新”,即值更新时不触发。

第九章-NOP Team dmz-C

第九章-NOP Team dmz-C 1、攻击者通过攻击DMZ-B机器发现有密钥可以免密登录到DMZ-C机器里,,然后攻击者上传了一个挖矿程序,请将该挖矿程序的名称提交, 我们使用DMZ-B下载的私钥进行登录查看当前pytho版本启用交互式…

高级语言设计第二次作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/gjyycx/homework/13570 学号:102500309 姓名:郑睿杰 一、课后练习:(具体思路都在代…

UiPath License

UiPath Lincense: 22年之前,一个独立的OC license官价是2万美金。 22年到25年, UiPath推行了一套Flex的license类型,特点是OC可以免费安装使用,但各个独立的产品license的价格做了上调,比如attened robot, unatte…

一些变换

这篇文章主要是做一个总结和铺垫。 我们做物理题时,常常要解一些复杂的微分方程(便便),但是我们对方程做一些变换往往会使微分方程变成线性方程,这是好的,于是专门研究一些变换是重要的。 一些记号 \[\begin{ali…

ANOMALYCLIP

对象无关的零样本异常检测 创新点有三个:(1)对象不可知文本提示关注图像的异常/正常,而不是对象语义;(2)文本编码器调优来优化原始文本空间;(3)DPAM(V-V)通过增强局部视觉语义来提高分割性能。 论文主要用…

vue项目浏览器内存不断增加

项目中用的jeecg-boot,排除其他内存泄漏的原因,最后发现将右侧点击组件Contextmenu改为v-if显示,内存就降下去了

基于伪距差分定位技术实现方案

基于伪距差分定位技术实现方案,包含原理详解与C++代码实现,结合差分修正与最小二乘解算算法一、定位原理详解 1.1 差分定位基本原理 核心原理:基准站已知精确坐标,计算伪距观测值与真实几何距离的差值(Δρ) 通过…

prometheus服务的客户端

prometheus服务的客户端环境 服务端 192.168.164.110 客户端 192.168.164.1111 添加主机到prometheus服务 # 客户端运行node-exporter docker run -itd \ -p 9100:9100 \ -v /:/rootfs:ro \ -v /sys:/sys:ro \ --name…

AI 辅助开发工具

一、引言:为什么 AI 辅助开发越来越重要?提升开发效率(代码生成、调试、文档) 降低认知负荷(自动补全、上下文理解) 加速学习新技术(解释代码、生成示例) 趋势:AI 成为现代开发者“第二大脑”二、主流 AI 辅助…

网安人必看!2025年最硬核的20+变现路径,学生党也能月入4位数。 - 详解

网安人必看!2025年最硬核的20+变现路径,学生党也能月入4位数。 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: …

SightAI 企业级实战:构建高可用、低成本的 AI 应用架构 - sight

在 AI 技术飞速发展的当下,不少开发者已能熟练运用 SightAI 完成个人开发项目。然而,当 AI 应用从个人开发场景迈向企业生产环境时,一系列新的挑战便随之而来,稳定性、成本、安全与合规成为企业必须攻克的难关。本…

应用安全 --- 安卓加固 之 软件安装白名单

应用安全 --- 安卓加固 之 软件安装白名单有些软件会在手机或pda中限制安装其他软件来保证自身软件安全。

应用安全 --- 安卓加固 之 软件安装白名单

应用安全 --- 安卓加固 之 软件安装白名单有些软件会在手机或pda中限制安装其他软件来保证自身软件安全。

Go开发者必备:5款提升代码质量的顶级Linter工具

https://baijiahao.baidu.com/s?id=1840292747265997661&wfr=spider&for=pc

函数作用域在解决 JavaScript 自定义元素类跨环境兼容问题中的应用

JavaScript 自定义元素类作为 Web Components 标准的核心组成部分,其跨环境兼容性依赖于对作用域规则的深刻理解与灵活运用。函数作用域作为 JavaScript 中变量可访问范围的基本划分单位,直接影响自定义元素类在不同…

零知IDE——基于STM32F407VET6和雨滴传感器的多界面TFT降雨监测显示系统 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

React-router v6学生管理系统笔记 - 教程

React-router v6学生管理系统笔记 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…