项目简介
本项目为Raspberry Pi提供了一个高效的SPI显示驱动,支持多种SPI接口的LCD显示屏,并通过优化SPI通信实现了高效的显示更新。
项目的主要特性和功能
- 高效的SPI通信:通过优化SPI通信协议,实现高达60fps的刷新率。
- 多种显示设备支持:支持ST7796S、ILI9341、ILI9486等多种SPI接口的LCD显示屏。
- 自适应显示更新:仅更新屏幕上实际变化的像素,减少数据传输量,提升性能。
- DMA和Polled Mode混合传输:结合两种传输方式,最大化SPI总线利用率。
- 显示旋转和颜色调整:支持显示旋转180度、颜色通道交换(RGB/BGR)。
- 统计信息显示:提供实时的显示更新统计信息,如帧率、SPI总线利用率等。
- 启动时自动加载:可通过
rc.local
或systemd
服务在系统启动时自动加载驱动。
安装使用步骤
假设用户已经下载了本项目的源码文件,以下是安装和使用的步骤:
安装依赖
bash
sudo apt-get install cmake
复制项目并构建
bash
cd ~
cd fbcp-ST7796
mkdir build
cd build
cmake -DDMA_TX_CHANNEL=7 -DDMA_RX_CHANNEL=5 -DST7796S=ON -DGPIO_TFT_DATA_CONTROL=25 -DGPIO_TFT_RESET_PIN=27 -DGPIO_TFT_BACKLIGHT=24 -DSPI_BUS_CLOCK_DIVISOR=4 -DBACKLIGHT_CONTROL=ON -DDISPLAY_SWAP_BGR=ON -DSTATISTICS=0 -DDISPLAY_ROTATE_180_DEGREES=ON ..
make -j
运行驱动
bash
sudo ./fbcp-ili9341
设置开机启动
编辑/etc/rc.local
文件,添加以下内容(将pi
替换为你的用户名):
bash
sudo /home/pi/fbcp-ST7796/build/fbcp-ili9341 &
配置触摸屏(如适用)
如果使用GT911触摸屏,需要在/boot/config.txt
中添加以下内容:
bash
dtoverlay=goodix
并使用xinput
命令进行触摸屏校准。
调整显示分辨率
在/boot/config.txt
中添加以下内容以调整显示分辨率:
bash
hdmi_cvt=480 320 60 1 0 0 0
max_framebuffers=2
framebuffer_width=480
framebuffer_height=320
hdmi_drive=2
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
overscan_left=20
overscan_right=12
overscan_top=10
overscan_bottom=10
hdmi_force_hotplug=1
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】