我手里有一块驱动芯片为ST7735R的160 * 144分辨率的TFT液晶屏。
它是使用SPI驱动的TFT液晶屏模块,包含的引脚有:
- LED,为背光引脚,有的模块也记作BL
- SCK,SPI的时钟引脚,有的模块也记作CLK
- SDA,SPI的数据引脚,有的模块也记作DAT
- A0,Command/Data引脚,用于指示当前在SPI总线上传输的是指令还是像素数据,有的模块也记作RS
- RST,模型硬重置引脚
- CS,SPI的片选引脚
- GND,公共接地
- VCC,电源引脚,根据模型的实际情况选择3.3v和5v去连接
理论上,树莓派有很多种使用TFT液晶屏的方法:
- 更新一版开源驱动内核,这是最偷懒的一个办法
- 编写内核驱动程序去驱动TFT液晶屏
- 编辑用户态下的应用程序,使用ioctl来驱动SPI,从而使用TFT液晶屏
方法一:开源驱动
这里使用的开源驱动是notro编写的fbTFT。
Github地址为:https://github.com/notro/fbtft/wiki/fbtft_device
1. 启用SPI
在终端的raspi-config中开启SPI,或者在开始菜单中的raspi-config里开启SPI都可以,下面的方法是在终端里开始SPI:
-
在终端输入
pi@Cocoonshu sudo raspi-config
-
选择:
Raspi-config5 Interfaceing Options
,进入接口设置页面
-
选择:
Interfaceing OptionsP4 SPI
,进入SPI接口的设置
-
选择:
Enable SPI<是>
,开启SPI
-
选择:
Confirm SPI enabled<确定>
,确认SPI的开启
-
确认完成后会回到主页面,选择:
Raspi-config<Finish>
,完成配置
-
此后可能涉及到需要重启,按照提示重启,或者在终端输入:
pi@Cocoonshu sudo reboot
2. 连接TFT液晶屏到树莓派
[TODO]
3. 更新fbTFT驱动
pi@Cocoonshu sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update
pi@Cocoonshu sudo chmod +x /usr/bin/rpi-update
pi@Cocoonshu REPO_URI=https://github.com/notro/rpi-firmware
pi@Cocoonshu sudo rpi-update
4. 挂载驱动
在终端中使用modprobe命令来挂载制定的模块。
在fbTFT的fbtft_device.c文件中定义了很多模块的名称,可在其中根据你TFT液晶屏的主控芯片查阅到模块名。我的TFT液晶屏是ST7735R主控的,查阅到的模块名为adafruit18
pi@Cocoonshu sudo modprobe fbtft_device name=adafruit18 gpios=reset:23,dc:24,led:25 speed=16000000
[未完.......]
网友评论