项目简介
本项目开发了一个适用于Raspberry Pi A、B、2、3和Zero的SPI接口LCD显示屏驱动程序。该驱动主要面向使用ILI9341、ILI9486、HX8357D等控制器的显示屏,借助优化SPI通信和显示更新策略,达成了高达60fps的刷新率。
项目的主要特性和功能
- 自适应显示流更新:仅上传屏幕实际变化的像素,而非整帧,有效提升SPI总线利用率。
- 多种优化技术:直接与BCM2835 ARM外设控制器寄存器通信,混合使用轮询模式SPI和DMA传输,利用未公开的BCM2835特性。
- 交错更新:当SPI总线无法处理大量像素更新时,采用交错更新策略,分帧上传偶数和奇数扫描线,提高最大显示更新率。
- 多设备支持:已测试并支持Adafruit 2.8" 320x240 TFT、Waveshare 3.5" 320x480 IPS等多种显示屏。
- 启动配置:支持启动时自动启动驱动程序,可配置HDMI和TFT显示尺寸。
安装使用步骤
1. 下载并编译项目
假设用户已下载本项目的源码文件,编译和运行步骤如下:
bash
sudo apt-get install cmake
cd fbcp-ili9341
mkdir build
cd build
cmake -DSPI_BUS_CLOCK_DIVISOR=6 -DADAFRUIT_ILI9341_PITFT=ON ..
make -j
sudo ./fbcp-ili9341
2. 配置启动选项
在CMake命令行中,可通过以下选项配置构建选项:
- 显示控制器选择:
- -DADAFRUIT_ILI9341_PITFT=ON
:适用于Adafruit 2.8" 320x240 TFT显示屏。
- -DWAVESHARE35B_ILI9486=ON
:适用于Waveshare 3.5" 480x320 ILI9486显示屏。其他选项参考项目文档。
- GPIO引脚配置:
- -DGPIO_TFT_DATA_CONTROL=number
:指定数据/控制(DC)线的GPIO引脚。
- -DGPIO_TFT_RESET_PIN=number
:指定复位线的GPIO引脚。
- -DGPIO_TFT_BACKLIGHT=number
:指定背光线GPIO引脚。
- SPI总线速度配置:
- -DSPI_BUS_CLOCK_DIVISOR=even_number
:设置SPI总线时钟分频器,控制SPI通信速度。
3. 启动驱动程序
为在启动时自动启动驱动程序,编辑/etc/rc.local
文件,在末尾添加以下行:
bash
sudo /path/to/fbcp-ili9341/build/fbcp-ili9341 &
4. 配置HDMI和TFT显示尺寸
若HDMI输出与SPI显示尺寸不匹配,可通过以下配置使HDMI输出与SPI显示尺寸一致:
bash
hdmi_group=2
hdmi_mode=87
hdmi_cvt=320 240 60 1 0 0 0
hdmi_force_hotplug=1
根据实际的SPI显示分辨率调整320 240
部分。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】