树莓派3B驱动ST7735(内核)(TODO)

(TODO)

https://www.youtube.com/watch?v=dj0WrkpPRho

要在树莓派 3B 上配置支持 ST7735S 显示屏,并在启动过程中将信息输出到这个显示屏,同时允许通过显示屏进行 shell 交互,需要进行以下步骤:

1. **安装必要的工具和库**

在配置和编译内核之前,需要确保系统安装了必要的工具和库:

```bash

sudo apt update

sudo apt install git bc bison flex libssl-dev make

```

2. **下载并配置内核源代码**

下载树莓派的 Linux 内核源代码:

```bash

git clone --depth=1 https://github.com/raspberrypi/linux

cd linux

```

在内核源代码目录中,使用 `menuconfig` 配置内核:

```bash

make bcmrpi_defconfig

make menuconfig

```

3. **配置内核支持 ST7735S 显示屏**

在 `menuconfig` 中,确保以下选项被启用:

  1. **Framebuffer 驱动支持**:
  • `Device Drivers` → `Graphics support` → `Framebuffer Devices` → `Support for frame buffer devices`

  • `Device Drivers` → `Graphics support` → `Framebuffer Devices` → `Support for small TFT LCD display modules`

  1. **SPI 支持**:
  • `Device Drivers` → `SPI support` → `User mode SPI device driver support`

  • `Device Drivers` → `SPI support` → `SPI bus master support`

  1. **ST7735S 驱动**:
  • `Device Drivers` → `Graphics support` → `Framebuffer Devices` → `Support for small TFT LCD display modules`

  • 在这里选择 ST7735S 驱动。如果找不到,可以通过以下方式启用:

```bash

Device Drivers → Graphics support → Support for small TFT LCD display modules →

Enable support for ST7735 panel

```

4. **配置设备树覆盖 (Device Tree Overlay)**

树莓派使用设备树配置硬件。你需要创建或修改设备树覆盖文件,以便配置 SPI 接口和 ST7735S 显示屏。

创建一个自定义的设备树覆盖文件 `st7735s-overlay.dts`,配置 SPI 和显示屏:

```dts

/dts-v1/;

/plugin/;

/ {

compatible = "brcm,bcm2708";

fragment@0 {

target = <&spi0>;

overlay {

status = "okay";

spidev@0 {

compatible = "st7735r";

reg = <0>;

spi-max-frequency = <32000000>;

rotate = <270>;

bgr = <1>;

fps = <60>;

dc-gpios = <&gpio 24 0>;

reset-gpios = <&gpio 25 0>;

};

};

};

};

```

编译设备树覆盖文件:

```bash

dtc -@ -I dts -O dtb -o st7735s-overlay.dtbo st7735s-overlay.dts

sudo cp st7735s-overlay.dtbo /boot/overlays/

```

5. **配置启动参数**

编辑 `/boot/config.txt` 文件,加载设备树覆盖文件并配置控制台输出:

```bash

dtoverlay=st7735s-overlay

```

将控制台输出重定向到显示屏:

```bash

framebuffer_width=160

framebuffer_height=128

enable_uart=1

```

6. **编译并安装内核**

编译内核并安装:

```bash

make -j4 zImage modules dtbs

sudo make modules_install

sudo cp arch/arm/boot/dts/*.dtb /boot/

sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/

sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/

sudo cp arch/arm/boot/zImage /boot/kernel7.img

```

7. **测试配置**

重启树莓派并查看 ST7735S 显示屏是否正确显示启动信息:

```bash

sudo reboot

```

如果配置正确,启动信息将显示在 ST7735S 显示屏上,并且可以通过显示屏进行 shell 交互。

相关推荐
La Pulga4 小时前
【FreeRTOS源码学习笔记】任务延时列表
笔记·mcu·学习·嵌入式·freertos·实时操作系统
2035去旅行4 小时前
bootcmd 详细讲解
linux·嵌入式·arm·soc
蓝天居士5 小时前
EtherCAT从入门到精通(7)
机器人·嵌入式·ethercat
蓝天居士7 小时前
EtherCAT从入门到精通(10)
机器人·嵌入式·ethercat
不脱发的程序猿11 小时前
GD32串口数据收进内存之后DMA如何处理?
单片机·嵌入式硬件·dma·嵌入式·串口通信·gd32
lishen21 天前
06 · 我把开发流程拆成了 AI 能执行的技能
嵌入式
§ꦿCFོ༉2 天前
嵌入式八股文—C语言入门学习(二)
c语言·学习·嵌入式·编程语言
Zwawa2 天前
两根线怎么挂住一堆设备:I2C 协议原理
c语言·单片机·嵌入式
欧西2 天前
零成本做一颗芯片:我用 OpenLane 把 SHA-256 从 Verilog 做到了 GDS
开源·嵌入式
LCG米3 天前
STM32 定时器主从模式输出精确脉冲数实测:TRGO 触发链拆解、多发一脉冲根因与干净停止时序落地
stm32·单片机·嵌入式硬件·嵌入式