本文基于STM32H750核心,学习使用LTDC外设,用CubeMX创建HAL库工程,驱动显示LCD屏幕。LCD屏采用AT070TN83。

文末有工程链接。

目录

一、CubeMX生成工程

LCD屏的相关配置 ​编辑

LCD图层配置

MPU配置

时钟树配置

工程配置

二、Keil配置

三、清屏函数

四、画点函数


一、CubeMX生成工程

LCD屏的相关配置

LCD屏的相关配置,可以查手册,具体的原理可以参考一下B站上的讲解:【LTDC—LCD】 ,这里不再做详细讲解。

LCD图层配置

注意,这里的图片长宽不一定要等于屏幕长宽,开始和结束显示位置也可以变化,显存中数据格式这里用的是RGB565,即16位图,考虑到STM32H750的SRAM空间有限。

Display Type是和屏幕的接线方式,有18bits和16bits两种,这个屏幕用的是18Bits

这里还开启几个GPIO脚接到屏幕上,用于一些其他控制。

MPU配置

关于MPU的介绍,参考一下网站上其他文章,这里不做详细阐述,大同小异。

时钟树配置

工程配置

CubeMX配置完成,生成工程

二、Keil配置

找到MX_LTDC_Init()的定义

在MX_LTDC_Init()里初始化完成后,开启背光。也可以在主函数中开启背光。

三、清屏函数

LTDC的使用相当简单,我们已经设置好了显存位置,只需要在显存中放入我们需要显示的内容,LTDC就会自动把数据转换好发送给屏幕,让屏幕显示出来。

#define LCD_MemoryAdd    0x24000000      //  显存的起始地址void LCD_Clear(uint16_t color)
{uint32_t i;                // 计数变量while( LTDC->CDSR != 0X00000001);    // 判断 显示状态寄存器LTDC_CDSR 的第0位 VDES:垂直数据使能显示状态,可以避免撕裂效应for(i=0;i<(480*272);i++)    {*(__IO uint16_t*)( LCD_MemoryAdd + i*2 ) = color ;   // 写入显存                         }    }

四、画点函数

void LCD_DrawPoint(uint16_t x , uint16_t y , uint16_t color)
{*(__IO uint16_t*)( LCD_MemoryAdd + (x*2 + y*480*2) ) = color ;
}

由于一个像素点是两个字节的像素,所以要x*2,一行480个像素点,就是480*y*2个字节

用画点函数,画出一个矩形:

int x,y;LCD_Clear(0xF800);for(x = 0; x<100; x++)
{for(y = 0; y<200; y++){LCD_DrawPoint(x , y , 0xFFFF);}
}

测试完成。

这里附上工程链接:提取码:v7f2  百度网盘下载。

HAL库的STM32单片机LTDC驱动显示LCD屏幕相关推荐

  1. HAL库版STM32双轮自平衡车(三) ———代码精讲

    系列文章目录 编码电机测速 HAL库OLED的使用 HAL库版STM32双轮自平衡车(一) ---代码思路和PID基础精讲 HAL库版STM32双轮自平衡车(二) --- CubeMX的配置.原理图接 ...

  2. HAL库版STM32双轮自平衡车(一) ———代码思路和PID基础精讲

    系列文章目录 HAL库版STM32双轮自平衡车(一) ---代码思路和PID的简单介绍(本篇) HAL库版STM32双轮自平衡车(二) --- CubeMX的配置.原理图接线.物料准备 HAL库版ST ...

  3. HAL库版STM32双轮自平衡车(二) ——— CubeMX的配置、原理图接线、物料准备

    系列文章目录 编码电机测速 HAL库版 0.96'OLED的使用 HAL库版STM32双轮自平衡车(一) ---代码思路和PID的简单介绍 HAL库版STM32双轮自平衡车(二) --- CubeMX ...

  4. HAL库版STM32双轮自平衡车(五) ———— 调参

    系列文章目录 HAL库版STM32双轮自平衡车(一) ---代码思路和PID基础精讲 HAL库版STM32双轮自平衡车(二) --- CubeMX的配置.原理图接线.物料准备 HAL库版STM32双轮 ...

  5. HAL库版STM32双轮自平衡车(四) ———— 原理图以及PCB绘制

    系列文章目录 HAL库版STM32双轮自平衡车(一) ---代码思路和PID基础精讲 HAL库版STM32双轮自平衡车(二) --- CubeMX的配置.原理图接线.物料准备 HAL库版STM32双轮 ...

  6. 51单片机+LCD12864驱动显示汉字模板+Proteus仿真

    51单片机+LCD12864驱动显示汉字模板+Proteus仿真 Proteus仿真效果 汉字显示方法 汉字通过取模软件取模. 取模软件:pctolcd2002 取模方式: 工程文件架构 主程序代码 ...

  7. 【Proteus仿真】51单片机+LCD1602驱动显示模板程序

    [Proteus仿真]51单片机+LCD1602驱动显示模板程序 Proteus仿真 范例工程架构 LCD1602相关驱动显示函数 //函数或者变量声明 extern void LCD1602_del ...

  8. 【Proteus仿真】STC15单片机+LCD1602驱动显示时间(DEMO)示例

    [Proteus仿真]STC15单片机+LCD1602驱动显示时间(DEMO)示例 Proteus仿真 Proteus加载 STC15单片机说明 在Proteus里面唯一能找到的 STC15一款支持仿 ...

  9. stm32【 1.3寸LCD屏幕(2)】

    1.3寸LCD屏幕 显示图片 测试平台:STM32F103RFT6 库版本:官方标准库3.5.0版本 屏幕:中景园1.3寸24Pin接插式LCD屏幕 分辨率:240*240像素 驱动芯片:ST7789 ...

最新文章

  1. 用Python解“计算圆周率”题
  2. 5G NGC — UDR 统一数据存储库,UDSF 非结构化数据存储功能
  3. java stringBuilder的用法
  4. HTACCESS 伪静态书写规则
  5. 老板请吃饭 | 李笑来约你聊聊垂直社区的产品和运营
  6. 使用 Sealos + Longhorn 部署 KubeSphere v3.0.0
  7. 使用threadlocal_何时以及如何使用ThreadLocal
  8. python本地识别二维码_十行代码实现文字识别,你敢信?
  9. 有哪些送给20多岁年轻人的建议?
  10. 用python查看和更改系统默认编码
  11. java 内部类_Java内部类总结有哪些 没有基础该怎么学Java?
  12. Composition or inheritance for delegating page methods?
  13. 实验5 数独游戏界面设计
  14. 【优化求解】基于matlab遗传算法求解车辆发车间隔优化问题【含Matlab源码 132期】
  15. Origin拟合Gompertz模型描述产甲烷过程
  16. 计算机网络常见面试题总结
  17. 问的书写规则是什么意思_汉字书写规则
  18. 315/433MHZ无线遥控接收解码源程序 Keil源程序 含AD格式电路图
  19. 免费建立个人网站怎么做?教你简单的方法
  20. STM32解析航模遥控器的PPM信号

热门文章

  1. 江苏全国计算机补报,江苏2017中级会计补报名时间 错过报名还有机会补报吗
  2. 攻克3D神器Blender的第三天-【内插面、倒角】
  3. [WinApi] C#获取其他窗口文本框内容
  4. angular4和php,Angular4的router使用详解
  5. v-charts 多个环形图
  6. 基于多模态成像遗传学数据来预测帕金森病相关基因和大脑区域的新型CERNNE方法
  7. android NDK 之cmake的使用
  8. 手机号获取验证码:django版本2.2/ js
  9. smart Client开发
  10. FATFS文件系统 例程