模板: LCD for rpi use 1in69

来自Waveshare Wiki
跳转至: 导航搜索

Raspberry Pi

硬件连接

连接树莓派的时候,选择用8PIN排线连接,请参考下方的引脚对应表格

树莓派连接引脚对应关系
LCD Raspberry Pi
BCM2835编码 Board物理引脚序号
VCC 3.3V 3.3V
GND GND GND
DIN MOSI 19
CLK SCLK 23
CS CE0 24
DC 25 22
RST 27 13
BL 18 12

1.69inch LCD 使用的是 GH1.25 8PIN 接口,对照上述表格连接在树莓派上即可: (请按照引脚定义表格连接,图中排线颜色仅供参考,以实际颜色为准。)

1.69inch-LCD-Module-details-7.jpg

开启SPI接口

  • 打开树莓派终端,输入以下指令进入配置界面:
sudo raspi-config
选择Interfacing Options -> SPI -> Yes 开启SPI接口

RPI open spi.png

  • 重启树莓派:
sudo reboot
  • 检查 /boot/config.txt,可以看到 'dtparam=spi=on' 已被写入

RPI open spi 1.jpg

  • 为了确保 SPI 没有被占用,建议其他的驱动覆盖暂时先关闭。可以使用 ls /dev/spi* 来检查 SPI 占用情况,终端输出 /dev/spidev0.0 和 /dev/spidev0.1 表示 SPI 情况正常

RPI open spi 2.jpg

运行C语言程序

PS:Bookworm系统只需要安装lgpio库即可
  • 安装 BCM2835
#打开树莓派终端,并运行以下指令:
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
  • 安装 wiringPi(可选)
#打开树莓派终端,并运行以下指令:
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行 gpio -v 会出现 2.52 版本,如果没有出现,说明安装出错。

#Bullseye 分支系统使用如下命令:
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
# 运行 gpio -v 会出现 2.60 版本,如果没有出现,说明安装出错。
  • 安装 lgpio
#打开树莓派终端,并运行以下指令
wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
sudo make install

# 更多的可以参考官网:https://github.com/gpiozero/lg
  • 下载程序
sudo apt-get install unzip -y
sudo wget https://www.waveshare.net/w/upload/8/8d/LCD_Module_RPI_code.zip
sudo unzip LCD_Module_RPI_code.zip
cd LCD_Module_code/RaspberryPi/
  • 重新编译,编译过程可能需要几秒
cd c
sudo make clean
sudo make -j 8

所有屏幕的测试程序,可以直接通过输入对应的尺寸进行调用:

sudo ./main 1.69

运行python程序

  • 安装库
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo pip3 install spidev
  • 下载程序
sudo apt-get install unzip -y
sudo wget https://www.waveshare.net/w/upload/8/8d/LCD_Module_RPI_code.zip
sudo unzip LCD_Module_RPI_code.zip
cd LCD_Module_code/RaspberryPi/
  • 进入python程序目录,并运行指令ls -l
cd python/example
ls -l

LCD rpi python examples 1in69.jpg
可以查看到所有屏幕的测试程序,按照尺寸分类:

0inch96_LCD_test.py     0.96inch LCD测试程序
1inch14_LCD_test.py 1.14inch LCD测试程序
1inch28_LCD_test.py 1.28inch LCD测试程序
1inch3_LCD_test.py 1.3inch LCD测试程序
1inch47_LCD_test.py 1.47inch LCD测试程序
1inch54_LCD_test.py 1.54inchLCD测试程序
1inch69_LCD_test.py 1.69inch LCD测试程序
1inch8_LCD_test.py 1.8inch LCD测试程序
1inch9_LCD_test.py 1.9inch LCD测试程序
2inch_LCD_test.py 2inch LCD测试程序
2inch4_LCD_test.py 2.4inch LCD测试程序
  • 运行对应屏幕的程序即可,程序支持python2/3
# python2
sudo python 1inch69_LCD_test.py
# python3
sudo python3 1inch69_LCD_test.py

FBCP移植

Framebuffer 是用一个视频输出设备从包含完整的帧数据的一个内存缓冲区中来驱动一个视频显示设备。简单的来说,就是使用一个内存区来存储显示内容,改变内存的数据就可以改变显示的内容。
在 github 上有一个开源工程:fbcp-ili9341,该工程相比其他类fbcp工程,利用了局部刷新和DMA实现高达60fps的速度

下载驱动

sudo apt-get install cmake -y
cd ~
wget https://www.waveshare.net/w/upload/1/18/Waveshare_fbcp.zip
unzip Waveshare_fbcp.zip
cd Waveshare_fbcp/
sudo chmod +x ./shell/*

方法一:使用脚本(推荐)

这里我们编写了几个脚本,可以让用户快速使用fbcp,可以根据自己的屏幕运行对应指令
如果使用脚本,并且不需要修改则可以忽略下文的方法二。
注:脚本会替换对应/boot/config.txt和/etc/rc.local并重启,如果用户如有需,请提前备份有关文件

#0.96inch LCD Module
sudo ./shell/waveshare-0inch96
#1.14inch LCD Module
sudo ./shell/waveshare-1inch14
#1.3inch LCD Module
sudo ./shell/waveshare-1inch3
#1.47inch LCD Module
sudo ./shell/waveshare-1inch47
#1.54inch LCD Module
sudo ./shell/waveshare-1inch54
#1.69inch LCD Module
sudo ./shell/waveshare-1inch69
#1.8inch LCD Module
sudo ./shell/waveshare-1inch8
#1.9inch LCD Module
sudo ./shell/waveshare-1inch9
#2inch LCD Module
sudo ./shell/waveshare-2inch
#2.4inch LCD Module
sudo ./shell/waveshare-2inch4

方法二:手动配置

环境配置

树莓派的vc4-kms-v3d会导致fbcp失效,所以我们需要在安装在fbcp之前关闭vc4-kms-v3d

sudo nano /boot/config.txt

屏蔽下图对应的语句即可
FBCP CLOSE.jpg
随后需要进行重启

sudo reboot

编译与运行

mkdir build
cd build
cmake [options] ..
sudo make -j
sudo ./fbcp

根据你使用的LCD Module自行替换,上文中cmake [options] ..

#0.96inch LCD Module
sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_0INCH96_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
#1.14inch LCD Module
sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH14_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
#1.3inch LCD Module
sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH3_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
#1.47inch LCD Module
sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH47_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
#1.54inch LCD Module
sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH54_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
#1.69inch LCD Module
sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH69_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
#1.8inch LCD Module
sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH8_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
#1.9inch LCD Module
sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH9_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
#2inch LCD Module
sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_2INCH_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
#2.4inch LCD Module
sudo cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_2INCH4_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..

设置开机自启动

sudo cp ~/Waveshare_fbcp/build/fbcp /usr/local/bin/fbcp
sudo nano /etc/rc.local

在 exit 0 前面添加 fbcp&。注意一定要添加"&" 后台运行,否则可能会出现系统不能启动的情况。
1in3 lcd fb5.png

设置用户界面显示尺寸

在/boot/config.txt 文件中设置用户界面显示尺寸。

sudo nano /boot/config.txt

在config.txt文件中添加分辨率的配置语句。

hdmi_force_hotplug=1
hdmi_cvt=[options] 
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
display_rotate=0

根据你使用的LCD,自行替换上文中的hdmi_cvt=[options]

#2.4inchinch LCD Module & 2inchinch LCD Module
hdmi_cvt=640 480 60 1 0 0 0
#1.9inch LCD Module
hdmi_cvt 640 340 60 6 0 0 0
#1.8inch LCD Module
hdmi_cvt=400 300 60 1 0 0 0
#1.69inch LCD Module
hdmi_cvt 560 480 60 6 0 0 0
#1.47inch LCD Module
hdmi_cvt 640 344 60 6 0 0 0
#1.3inch LCD Module & 1.54inch LCD Module
hdmi_cvt 480 480 60 6 0 0 0
#1.14inch LCD Module
hdmi_cvt 480 270 60 6 0 0 0
#0.96inch LCD Module
hdmi_cvt 320 160 60 6 0 0 0

重启设备即可

sudo reboot

启动树莓派后可以发现屏幕已经出现用户界面了。
2inch OLED01 fbcp.png