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 模式)

二、演示功能概述
本例程将使用 Air8000 的 LCD 功能,配合 Air8000 开发板配套的 LCD 屏幕显示内容。
三、准备硬件环境
准备以及组装好硬件环境。
3.1 ST7796 LCD 屏幕一个

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

3.3 实物接线图
核心板连接方式

整机开发板连接方式

四、软件环境
在开始实践本示例之前,先筹备一下软件环境:
-
Luatools 工具;
-
内核固件文件(底层 core 固件文件):LuatOS-SoC_V2014_Air8000_2.soc;参考项目使用的内核固件;
-
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 显示屏初始化
参数
返回值
无
例子

lcd.clear(color)
lcd 清屏
参数
返回值
无
例子

lcd.drawLine(x0,y0,x1,y1,color)
在两点之间画一条线.
参数
返回值
无
例子

lcd.drawRectangle(x0,y0,x1,y1,color)
从 x / y 位置(左上边缘)开始绘制一个框
参数
返回值
无
例子

lcd.drawCircle(x0,y0,r,color)
从 x / y 位置(圆心)开始绘制一个圆
参数
返回值
无
例子

lcd.setFont(font, indentation)
设置字体
参数
返回值
无
例子

lcd.drawStr(x,y,str,fg_color)
显示字符串
参数
返回值
无
例子

lcd.showImage(x, y, file)
显示图片,当前只支持 jpg,jpeg
参数
返回值
无
例子

lcd.flush()
主动刷新数据到界面, 仅设置 buff 且禁用自动属性后使用
参数
无
返回值
例子

lcd.setupBuff(conf, onheap)
设置显示缓冲区, 所需内存大小为 2× 宽 × 高 字节. 请衡量内存需求与业务所需的刷新频次.
参数
返回值
例子

lcd.autoFlush(enable)
设置自动刷新, 需配合 lcd.setupBuff 使用
参数
返回值
无
例子

六、代码示例介绍
6.1 代码介绍
6.1.1 main.lua

6.1.2 airlcd.lua

6.2 结果演示
1.使用 Air8000 开发板 + 分辨率为 320480 的 LCD 屏幕显示图片,效果如下图所示:

2.使用 Air8000 开发板 + 分辨率为 320480 的 LCD 屏幕画线,效果如下图所示:

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

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

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

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

6.3 烧录代码注意事项
因为烧录脚本区可用空间有限,所以烧录时仅放置自己所用照片即可

七、总结
本文演示如何在 Air8000 开发板上实现 LCD 屏幕显示图片、中英文和画线,框,圆的功能。
今天的内容就分享到这里了~

浙公网安备 33010602011771号