树莓派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 交互。

相关推荐
憧憬一下7 小时前
Pinctrl子系统中Pincontroller和client驱动程序的编写
arm开发·嵌入式·c/c++·linux驱动开发
蓝天居士7 小时前
ES8388 —— 带耳机放大器的低功耗立体声音频编解码器(4)
嵌入式·音频·es8388
田三番10 小时前
使用 vscode 简单配置 ESP32 连接 Wi-Fi 每日定时发送 HTTP 和 HTTPS 请求
单片机·物联网·http·https·嵌入式·esp32·sntp
启明智显13 小时前
AI笔筒操作说明及应用场景
人工智能·嵌入式硬件·嵌入式·ai大模型·启明智显·esp32-s3
FreakStudio1 天前
全网最适合入门的面向对象编程教程:58 Python字符串与序列化-序列化Web对象的定义与实现
python·单片机·嵌入式·面向对象·电子diy
Projectsauron5 天前
【STM32】通过 DWT 实现毫秒级延时
stm32·嵌入式·dwt
云中双月5 天前
如何使用Ida Pro和Core Dump文件定位崩溃位置(Linux下无调试符号的进程专享)
linux·嵌入式·gdb·调试·gcc·崩溃·ida pro·ulimit·core dump·cross compile
L_Z_J_I7 天前
超子物联网HAL库笔记:准备篇
笔记·物联网·嵌入式
飞凌嵌入式7 天前
FET113i-S核心板已支持RISC-V,打造国产化降本的更优解 -飞凌嵌入式
嵌入式硬件·嵌入式·risc-v·飞凌嵌入式
yufei-coder7 天前
使用语音模块的开发智能家居产品(使用雷龙LSYT201B 语音模块)
嵌入式·智能家居·语音模块