littlebot
Published on 2025-04-09 / 0 Visits
0

【源码】基于C语言的Raspberry Pi SPI显示驱动

项目简介

本项目为Raspberry Pi提供了一个高效的SPI显示驱动,支持多种SPI接口的LCD显示屏,并通过优化SPI通信实现了高效的显示更新。

项目的主要特性和功能

  1. 高效的SPI通信:通过优化SPI通信协议,实现高达60fps的刷新率。
  2. 多种显示设备支持:支持ST7796S、ILI9341、ILI9486等多种SPI接口的LCD显示屏。
  3. 自适应显示更新:仅更新屏幕上实际变化的像素,减少数据传输量,提升性能。
  4. DMA和Polled Mode混合传输:结合两种传输方式,最大化SPI总线利用率。
  5. 显示旋转和颜色调整:支持显示旋转180度、颜色通道交换(RGB/BGR)。
  6. 统计信息显示:提供实时的显示更新统计信息,如帧率、SPI总线利用率等。
  7. 启动时自动加载:可通过rc.localsystemd服务在系统启动时自动加载驱动。

安装使用步骤

假设用户已经下载了本项目的源码文件,以下是安装和使用的步骤:

安装依赖

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】