STM32CubeMX | 41 - 使用LTDC驱动TFT-LCD屏幕(RGB屏)

发布者:学海飘香最新更新时间:2021-07-19 来源: eefocus关键字:STM32CubeMX  LTDC 手机看文章 扫描二维码
随时随地手机看文章

本篇详细的记录了如何使用STM32CubeMX配置 STM32F767IGT6 的 LTDC 外设驱动 TFT-LCD (RGB)屏幕。


STM32CubeMX | 31-使用硬件FMC读写SDRAM(W9825G6KH)


STM32CubeMX | 31-使用硬件FMC读写SDRAM(W9825G6KH)

SDRAM驱动添加之后,需要在LTDC外设初始化之前,FMC外设初始化之后,添加SDRAM初始化函数:

6. 图层混合测试

图层1+背景层混合测试

保持背景层设置为蓝色不变,开启第1层显示,将while(1) 挪动到图层1初始化完毕之后:


显示效果如下,图层1的窗口显示内容从SDRAM中读出(否则会显示黑色),为白色区域,其余区域显示窗口1的背景色绿色:

此时,背景层的颜色为蓝色,图层1的颜色为白色+绿色,如果将图层透明度设置为半透明,则会看到图层1+背景层混合的效果:

见证奇迹的时刻来啦:

可以看到,图层1的白色区域和背景层混合,变为蓝色,而图层1的绿色区域与背景层混合,变为,我也不知道这是什么色~

图层2+图层1+背景层混合测试

接着再打开图层2,将while(1)挪至图层2初始化代码之后:

虽然三层都有显示,但是图层2设置为不透明,所以只会显示图层2;图层2的窗口因为没有设置显存,为黑色,窗口之外的区域为图层2的背景色红色,效果如下:


接下来将图层2的透明度也设置为半透明,即可看到三层混合的效果:

见证奇迹:

7. 图片显示

生成图片数组

虽然我们没有配置DMA2D外设,但这不能影响我们愉快的玩耍!DMA2D只是为了方便修改SDRAM中的显存用的。

之前配置的时候图层2没有配置显存空间,我们可以把一张图片编译进代码,然后把图片地址作为LTDC的显存地址,虽然此时显存空间在Flash里,我们没法在程序运行时动态的修改显存内容,但这丝毫不影响LTDC外设去读取显存中的图片内容啊!

之前我们设置图层2的窗口大小是400400,所以先去找一张图片,在画图工具中将大小改为400400像素,并另存为 .bmp 图片。

接着使用STemwin中提供的 BmpCvtST.exe 工具,打开刚刚生成的bmp图片,点击另存为:


选择保存为C文件:

格式选择RGB565、红蓝交换:

添加图片数组到工程中

将该文件复制到工程目录中,添加进MDK工程,因为这是适用于STemwin的,所以该文件需要进行少量修改,改成如下即可,其它的都删除(文件的也有一段代码记得删除)。

在 ltdc.c中声明该数组:

将图片数组作为显存

将图片数组的地址传递给LTDC,并指定显存的大小为400*400:

编译,下载,见证奇迹:

至此,LTDC外设如何驱动RGB 屏幕讲解完毕,下节我们使用DMA2D来修改显存内容,实现打点画线字符等多样显示。

关键字:STM32CubeMX  LTDC 引用地址:STM32CubeMX | 41 - 使用LTDC驱动TFT-LCD屏幕(RGB屏)

上一篇:【STM32开发环境】Linux下开发stm32(四) | 固件库工程开发
下一篇:【STM32Cube_21】使用DAC输出任意指定电压

推荐阅读最新更新时间:2024-11-11 16:30

STM32CUBEMX(9)--ADC通过轮询方式读取,USART打印
概述 本章通过使用模数转换器(ADC),通过轮询方式采集多个ADC通道电压。 之前已经做过DMA方式采样,详情请查看: https://blog.csdn.net/qq_24312945/article/details/106557538 硬件准备 首先需要准备一个开发板,这里我准备的是NUCLEO-F030R8的开发板: 选择芯片型号 使用STM32CUBEMX选择芯片stm32f030r8,如下所示: 配置时钟源 HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用内置的时钟源,故都选择Disable选项,如下所示: 配置时钟树 STM32F0的最高主频到48M,所以配置48即可: 串口配置 本次实验使
[单片机]
<font color='red'>STM32CUBEMX</font>(9)--ADC通过轮询方式读取,USART打印
HAL库 STM32CubeMX教程五----看门狗(独立看门狗,窗口看门狗)
前言: 今天我们来学习看门狗的配置与函数,看门狗可以有效解决程序的跑飞,在使用过程中比较常见,是防止芯片故障的有效外设,我们一起来学习下HAL库 STM32CubeMX的独立看门狗,窗口看门狗的使用。本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1、芯片: STM32F407ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/STM32F4xxHAL库 知识概括: 通过本篇博客您将学到: STM32CubeMX创建看门狗例程 独立看门狗,靠窗看门狗 工作原理 看门狗 在由单片机构成的微型计算机系统中单片
[单片机]
HAL库 <font color='red'>STM32CubeMX</font>教程五----看门狗(独立看门狗,窗口看门狗)
STM32CubeMX系列 | DAC数模转换
1. DAC简介 DAC(digital to analog converter)即数模转换器,它可以将数字信号转换为模拟信号,它的功能与ADC相反。在常见的数字信号系统中,大部分传感器信号被转化成电压信号,而ADC把电压模拟信号转换成易于计算机存储、处理的数字编码,由计算机处理完成后,再由DAC输出电压模拟信号来驱动某些执行器件,使人类易于感知。如音频信号的采集和还原就是这样的一个过程 STM32F1的DAC模块是12位数字输入,电压输出型的DAC。可以配置为8位或12位模式,也可以与DMA控制器配合使用,DAC工作在12位模式下时,数据可以设置为左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式
[单片机]
如何使STM32CubeMX新建工程
运行STM32CubeMX工具。 单击新建项目或菜单-》文件-》新建项目。 从Board Selector部分,过滤以选择和使用 NUCLEO-L476RG 板: 检查Nucleo64类型。 检查MCU 系列上的STM32L4。 使用板选择器选择NUCLEO-L476RG板: 单击启动项目继续。 AnswerYes使用默认模式初始化所有外围设备?弹出窗口。 2引出线配置↑ 在SYS peripheral下的Pinout选项卡中验证SerialWire是否被选为 Debug 接口: 相应的引脚 PA13 和 PA14 已自动分配和配置。 选择板后,STM32CubeMX 允许自动为板设置引脚分配,包括通信接口、LED 和其他功能
[单片机]
如何使<font color='red'>STM32CubeMX</font>新建工程
STM32CubeMx的初始配置顺序是怎么影响DMA功能的
‍经常有STM32开发者基于STM32CubeMx进行配置并生成基于HAL库的初始化代码,当涉及到DMA功能时,发现DMA功能无效,但从配置操作及代码本身又似乎找不出原因来的情况。此情此景 往往挺令人抓狂的。 比方曾有人反馈,他使用STM32F4系列芯片进行产品开发,通过STM32CubeMx配置并生成初始化代码,使用了UART的DMA传输。但他发现DMA根本不工作。后来他无意中发现,是因为他在用户代码里不经意地调整过UART外设和DMA外设初始化代码的前后顺序,当他重新调整二者的先后顺序后就一切正常了【此时DMA初始化代码在前,UART初始化代码在后】。他想知道这个顺序是怎么影响DMA功能的。 我顺手拿了块STM32F3
[单片机]
<font color='red'>STM32CubeMx</font>的初始配置顺序是怎么影响DMA功能的
使用STM32CubeMx配置时容易忽视的一个地方
‍Stm32CubeMx‍图形化配置工具因其简洁直观的图形化操作界面与强大的功能,极大地方便STM32用户产品开发、提升开发效率而为越来越多的人所喜爱和使用。 这里跟大家分享一个在使用该图形化配置工具做各外设功能配置时容易忽略的地方。既然说是容易忽略的地方,它意味着什么,做开发的人都懂的。开发过程中把我们折磨得半死的往往是类似这些被我们忽略的地方、或者想当然的地方。 我们知道,STM32很多外设的输出往往是跟GPIO复用的,而GPIO的输出一般都有个最大可输出速率可选择配置。我们在利用Stm32CubeMx图形化工具做配置时,往往把重点放到别的地方、别的参数了,常常却把相关GPIO的输出速率没有结合实际应用需求做手动配置,
[单片机]
使用<font color='red'>STM32CubeMx</font>配置时容易忽视的一个地方
STM32CubeMX图形化配置软件使用
1、RCC(reset and clock control):复位与时钟控制 由上图可知,可以选择三个时钟来源: 1、Disable(失能) ,意味着板子要选择内部时钟。 2、BYPASS Clock Source(旁路时钟源),是指无需使用外部晶体时所需的芯片内部时钟驱动组件,犹如芯片内部的驱动组件被旁路了,也就是无需内部的驱动电路了,直接使用外部的时钟信号。 3、Crystal/Ceramic Resonator(晶体/陶瓷晶振),该时钟源是由外部无源晶体与MCU内部时钟驱动电路共同配合形成,有一
[单片机]
<font color='red'>STM32CubeMX</font>图形化配置软件使用
基于stm32cubemx对fatfs文件系统进行移植
今天要给大家分享的是使用FatFs这个库来读写SD卡上面的文件。工程的初始化函数和FatFs都是通过STM32CubeMX配置生成的,不需要我们手动添加库。 今天分享的内容和我的上一篇帖子 SDIO读取SD卡的扇区 有关,最好掌握了SDIO读取SD卡扇区的基础之后再来看这一篇帖子。 写在前面的话 上一次发表了关于SDIO读取SD卡的一篇开发分享的帖子,今天呢就更进一步使用了FatFs文件系统。同样我们完全使用ST公司提供的STM32CubeMX软件和HAL库来进行开发。如果喜欢我的帖子请多多回复我会努力更新的。 我使用的工具 开发平台:正点原子探索者STM32F407开发板 硬件:使用了NUCLEO-F446RE开发板的ST-Li
[单片机]
热门资源推荐
热门放大器推荐
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved