项目简介
本项目是针对Teensy 4.1微控制器开发的库,用于驱动ILI948X系列的TFT LCD屏幕。借助FlexIO模块实现高速数据传输,支持8位和16位并行接口(8080),具备屏幕初始化、显示属性设置、像素数据推送等功能,还支持半异步数据传输,可减轻MCU负载。
项目的主要特性和功能
- 屏幕支持:目前支持ILI9488屏幕,未来会支持更多型号,如R61529、ILI9486、ILI9806g等。
- 高速传输:利用FlexIO模块实现高速数据传输,支持8位和16位并行接口。
- 传输模式:同步传输适用于简单图像推送;半异步传输通过FlexIO中断功能,每次传32字节数据,减轻MCU负载。
- 引脚配置:支持任意GPIO引脚用于CS、DC和RST控制信号。
- 显示设置:支持屏幕旋转、颜色反转等功能。
- 回调函数:支持注册回调函数,在异步传输完成后触发。
安装使用步骤
假设用户已下载本项目的源码文件,使用步骤如下: 1. 包含库文件:在项目中包含库的头文件。 ```cpp
include "ILI948x_t41_p.h"
2. **定义引脚和创建对象**:根据实际屏幕型号和引脚配置,定义参数并创建库对象。
cpp
define CS 11
define DC 13
define RST 12
ILI948x_t41_p lcd = ILI948x_t41_p(DISPLAY_TYPE, DC, CS, RST);
其中`DISPLAY_TYPE`为屏幕类型(如`ILI9488_DISP`),`DC`、`CS`、`RST`为相应的控制引脚。
3. **连接LCD屏幕**:将LCD屏幕连接到Teensy 4.1的相应引脚。
- D0 - pin 19
- D1 - pin 18
- D2 - pin 14
- D3 - pin 15
- D4 - pin 40
- D5 - pin 41
- D6 - pin 17
- D7 - pin 16
- D8 - pin 22
- D9 - pin 23
- D10 - pin 20
- D11 - pin 21
- D12 - pin 38
- D13 - pin 39
- D15 - pin 26
- D15 - pin 27
- WR - pin 36
- RD - pin 37 或 3.3V(如果不需要读取命令)
4. **初始化库**:在`setup`函数中调用`begin`函数初始化库。
cpp
ILI948x_t41_p::begin();
默认波特率为20MHz,可通过传递参数(2,4,8,12,20,24,30,40)来调整波特率。
5. **推送像素数据**:
- 同步推送:
cpp
ILI948x_t41_p::pushPixels16bit(uint16_t colors, x1, y1, x2, y2);
- 半异步推送:
cpp
ILI948x_t41_p::pushPixels16bitAsync(uint16_t colors, x1, y1, x2, y2);
其中`colors`为RGB565格式的颜色数组,`x1, y1, x2, y2`为屏幕的起始和结束坐标。
6. **其他功能**:
- 设置屏幕旋转:
cpp
ILI948x_t41_p::setRotation(n);
- 反转显示颜色:
cpp
ILI948x_t41_p::invertDisplay(bool);
- 注册异步传输完成回调:
cpp
ILI948x_t41_p::onCompleteCB(CBF callback);
```
注意事项
- 本库为实验性质,部分功能可能尚未完善,使用时请谨慎。
- 使用本库时,请确保Teensy 4.1开发环境以及相关依赖库已经正确安装和配置。
- 本库的具体使用方法和API接口请参考库的说明文档和源码注释。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】