Air8000开发板LCD屏驱动实战:实现图片、中英文与图形绘制功能!

Air8000开发板的LCD屏驱动开发,是嵌入式项目中不可或缺的技术环节。本文以Air8000开发板配套的LCD屏幕为对象,详细阐述如何通过驱动实现图片显示、中英文文本输出,以及画线、画框、画圆等图形绘制功能。从硬件驱动配置到软件代码实现,结合实际开发中的调试经验,解析每个功能模块的关键技术点,为开发者提供一套可直接应用于项目的LCD屏开发实战方案。

一、LCD 概述:

LCD(Liquid Crystal Display,液晶显示器)是嵌入式系统中常用的显示设备,广泛应用于智能家居、工业控制、医疗设备、消费电子等领域。以下是 LCD 的详细介绍:

1.1 嵌入式 LCD 的基本原理

LCD 通过控制液晶分子的排列来改变光的透过率,从而显示图像或文字。其核心组成部分包括:

液晶层:通过电场控制液晶分子的排列

背光模块:提供光源(如 LED 背光)

驱动电路:控制液晶分子的电场和像素的显示

控制芯片:负责处理图像数据并发送给驱动电路

1.2 接口类型

SPI(串行接口,适合低引脚数场景)。

支持的IC:st7796,st7789,st7735,st7735v,st7735s,gc9a01,gc9106l,gc9306x,ili9486

QSPI Air8000 支持QSPI LCD 屏幕,最高支持720*720

支持的IC:co5300,sh8601z

1.3 硬件连接示例(SPI 模式)

image

二、演示功能概述

本例程将使用 Air8000 的 LCD 功能,配合 Air8000 开发板配套的 LCD 屏幕显示内容。

三、准备硬件环境

准备以及组装好硬件环境。

3.1 ST7796 LCD 屏幕一个

image

3.2 8000 与 ST7796 LCD 屏幕 接线图如下

image

3.3 实物接线图

核心板连接方式
image
整机开发板连接方式
image

四、软件环境

在开始实践本示例之前,先筹备一下软件环境:

  1. Luatools 工具;

  2. 内核固件文件(底层 core 固件文件):LuatOS-SoC_V2014_Air8000_2.soc;参考项目使用的内核固件;

  3. luatos 需要的脚本和资源文件

脚本和资源文件:https://gitee.com/openLuat/LuatOS/tree/master/module/Air8000/demo/lcd

lib 脚本文件:使用 Luatools 烧录时,勾选 添加默认 lib 选项,使用默认 lib 脚本文件;

准备好软件环境之后,接下来查看如何烧录项目文件到 Air8000 核心板,将本篇文章中演示使用的项目文件烧录到 Air8000 核心板中。

五、使用 LCD 软硬件资料:

5.1 LCD 硬件参考资料

Air8000 支持 LCD 接口参考:LCD 参考电路和选型推荐:https://docs.openluat.com/air8000/luatos/hardware/design/lcd/?h=lc

5.2 API 接口介绍

api 链接地址:lcd-api 地址:https://docs.openluat.com/osapi/core/lcd/

lcd.init(tp, args, spi_dev, init_in_service)

lcd 显示屏初始化

参数

返回值

例子
image

lcd.clear(color)

lcd 清屏

参数

返回值

例子

image

lcd.drawLine(x0,y0,x1,y1,color)

在两点之间画一条线.

参数

返回值

例子
image

lcd.drawRectangle(x0,y0,x1,y1,color)

从 x / y 位置(左上边缘)开始绘制一个框

参数

返回值

例子
image

lcd.drawCircle(x0,y0,r,color)

从 x / y 位置(圆心)开始绘制一个圆

参数

返回值

例子
image

lcd.setFont(font, indentation)

设置字体

参数

返回值

例子
image

lcd.drawStr(x,y,str,fg_color)

显示字符串

参数

返回值

例子
image

lcd.showImage(x, y, file)

显示图片,当前只支持 jpg,jpeg

参数

返回值

例子
image

lcd.flush()

主动刷新数据到界面, 仅设置 buff 且禁用自动属性后使用

参数

返回值

例子
image

lcd.setupBuff(conf, onheap)

设置显示缓冲区, 所需内存大小为 2× 宽 × 高 字节. 请衡量内存需求与业务所需的刷新频次.

参数

返回值

例子
image

lcd.autoFlush(enable)

设置自动刷新, 需配合 lcd.setupBuff 使用

参数

返回值

例子
image

六、代码示例介绍

6.1 代码介绍

6.1.1 main.lua

image

6.1.2 airlcd.lua

image

6.2 结果演示

1.使用 Air8000 开发板 + 分辨率为 320480 的 LCD 屏幕显示图片,效果如下图所示:
image
2.使用 Air8000 开发板 + 分辨率为 320
480 的 LCD 屏幕画线,效果如下图所示:
image
3.使用 Air8000 开发板 + 分辨率为 320*480 的 LCD 屏幕画框,效果如下图所示:
image

4.使用 Air8000 开发板 + 分辨率为 320480 的 LCD 屏幕画圆,效果如下图所示:
image
5.使用 Air8000 开发板 + 分辨率为 320
480 的 LCD 屏幕中文显示,效果如下图所示:
image

6.使用 Air8000 开发板 + 分辨率为 320*480 的 LCD 屏幕中文显示,效果如下图所示:
image

6.3 烧录代码注意事项

因为烧录脚本区可用空间有限,所以烧录时仅放置自己所用照片即可

image

七、总结

本文演示如何在 Air8000 开发板上实现 LCD 屏幕显示图片、中英文和画线,框,圆的功能。

今天的内容就分享到这里了~

posted @ 2025-11-28 16:09  电子老师傅  阅读(0)  评论(0)    收藏  举报