请按下图将显示屏缓慢安装到树莓派的40PIN GPIO接口上。
如果你不清楚Raspberry Pi OS的两个分支的差别,可以查看以下介绍#Raspberry Pi OS分支介绍
请在树莓派官网下载最新版本的镜像。
dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-DPI-35inch
dtoverlay=waveshare-35dpi-3b-4b
dtoverlay=waveshare-35dpi-3b
dtoverlay=waveshare-35dpi-4b
dtoverlay=waveshare-35dpi
dtoverlay=waveshare-touch-35dpi
gpio=0-9=a2
gpio=12-17=a2
gpio=20-25=a2
dtoverlay=dpi18
enable_dpi_lcd=1
display_default_lcd=1
extra_transpose_buffer=2
dpi_group=2
dpi_mode=87
dpi_output_format=0x6f006
hdmi_timings=640 0 20 10 10 480 0 10 5 5 0 0 0 60 0 60000000 1
dtoverlay=waveshare-35dpi-3b-4b
dtoverlay=waveshare-35dpi-3b
dtoverlay=waveshare-35dpi-4b
注:如果是Raspberry Pi 4,还需要把dtoverlay=vc4-fkms-V3D注释掉。
先检查使用的系统是否有加载KMS或FKMS驱动。
查看方法:在/boot/config.txt中,看对应的主板是否有打开了dtoverlay=vc4-kms-v3d或dtoverlay=vc4-fkms-v3d。
使用以下命令进行显示旋转:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
#在autostart文件末端输入对应显示旋转角度的指令,重启后生效
#0: 旋转0度; 1:旋转270度;2: 旋转180度; 3: 旋转90度
xrandr -o 1
使用以下命令进行显示旋转:
sudo nano /boot/config.txt
#在config.txt文件末端输入对应显示旋转角度的指令,重启后生效
#0: 旋转0度; 1:旋转90度;2: 旋转180度; 3: 旋转270度
display_rotate=3
在进行显示旋转后,由于触摸并没有随着显示角度做出更改,导致触摸位置不对。所以需要对触摸做出修改。
1. 安装libinput
sudo apt-get install xserver-xorg-input-libinput
sudo apt install xserver-xorg-input-synaptics
2. 在/etc/X11/下创建xorg.conf.d目录 (如果该目录已存在,这直接进行第3步)
sudo mkdir /etc/X11/xorg.conf.d
3. 复制40-libinput-conf 文件到刚刚创建的目录下
sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/
4. 编辑该文件
sudo nano /etc/X11/xorg.conf.d/40-libinput.conf
找到 touchscreen的部分,在里面添加以下语句,然后保存即可
Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"
sudo reboot
完成以上步骤即可进行90度旋转。
注:
90 度旋转: Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"
180度旋转: Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"
270度旋转: Option "CalibrationMatrix" "0 -1 1 1 0 0 0 0 1"
有些用户希望显示时,不受屏幕保护功能影响,可以通过如下设置。将屏幕保护功能关闭。
打开 lightdm.conf
sudo nano /etc/lightdm/lightdm.conf
修改 lightdm.conf 找到[SeatDefaults]段下的"xserver-command",取消注释,修改为如下:
#xserver-command=X
修改为
xserver-command=X -s 0 -dpms
重启
sudo reboot
对于Pi4,需要先更新wiringPi版本,操作方法如下(对于3B+及更早的版本,则无需更新):
wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v # 运行gpio -v会出现2.52版本,如果没有出现说明安装出错
更新wiringPi成功后,可通过以下命令控制背光亮度。
gpio -g mode 18 pwm #占用管脚为PWM管脚 gpio pwmc 100 gpio -g pwm 18 0 #最亮 gpio -g pwm 18 1023 #最暗 gpio -g mode 18 out #释放为输出
用户可以通过以下命令设置屏幕的关闭和开启。
vcgencmd display_power 0 vcgencmd display_power 1
以下标识为“NC”的引脚表示触摸屏没有占用该引脚,用户可用于其它应用。
引脚号 | 标识 | 描述 |
---|---|---|
1 | NC | 悬空 |
2 | 5V | 电源正(5V电源) |
3 | VSYNC | 垂直同步 |
4 | 5V | 电源正(5V电源) |
5 | HSYNC | 水平同步 |
6 | GND | 电源地 |
7 | B2 | RGB信号线 |
8 | G4 | RGB信号线 |
9 | GND | 电源地 |
10 | G5 | RGB信号线 |
11 | G7 | RGB信号线 |
12 | PWM | 背光控制 |
13 | TP_INT | 触摸面板的中断 |
14 | GND | 电源地 |
15 | R4 | RGB信号线 |
16 | R5 | RGB信号线 |
17 | NC | 悬空 |
18 | R6 | RGB信号线 |
19 | TP_SDA | 触摸面板的I2C SDA |
20 | GND | 电源地 |
21 | B7 | RGB信号线 |
22 | R7 | RGB信号线 |
23 | TP_SCL | 触摸面板的I2C SCL |
24 | B6 | RGB信号线 |
25 | GND | 电源地 |
26 | B5 | RGB信号线 |
27 | LCD_CLK | LCD时钟 |
28 | DE | LCD数据使能 |
29 | B3 | RGB信号线 |
30 | GND | 电源地 |
31 | B4 | RGB信号线 |
32 | G2 | RGB信号线 |
33 | G3 | RGB信号线 |
34 | GND | 电源地 |
35 | NC | 悬空 |
36 | G6 | RGB信号线 |
37 | NC | 悬空 |
38 | R2 | RGB信号线 |
39 | GND | 电源地 |
40 | R3 | RGB信号线 |
测试环境:2022-04-04-raspios-bullseye-armhf 32位系统
支持型号:支持微雪电子DSI LCD、DPI LCD和HDMI LCD电容触摸屏系列的32位系统,64位系统默认不支持
wget https://www.waveshare.net/w/upload/1/18/Evdev-right-click-emulation.zip
unzip Evdev-right-click-emulation.zip
cd evdev-right-click-emulation
sudo apt install build-essential libevdev2 libevdev-dev -y
sudo cp 'out/evdev-rce' '/usr/local/bin/'
sudo chmod +x '/usr/local/bin/evdev-rce'
输入命令
sudo evdev-rce
运行之后即可触摸长按实现右键功能
sudo usermod -G 'input' -a pi
echo 'uinput' | sudo tee -a /etc/modules
sudo nano /etc/udev/rules.d/99-uinput.rules
在99-uinput.rules文件中添加
KERNEL=="uinput", MODE="0660", GROUP="input"
保存,再在终端运行
sudo udevadm control --reload-rules sudo udevadm trigger
然后重启
sudo reboot
重启后运行(此时不需要sudo)
evdev-rce
运行之后即可触摸长按实现右键功能
在终端输入
sudo mkdir ~/.config/autostart sudo nano ~/.config/autostart/right_click.desktop
在right_click.desktop增加如下
[Desktop Entry] Version=1.0 Type=Application Name=evdev-rce GenericName=Enable long-press-to-right-click gesture Exec=env LONG_CLICK_INTERVAL=1000 LONG_CLICK_FUZZ=200 /usr/local/bin/evdev-rce Terminal=true StartupNotify=false
如果要修改灵敏度则可以修改 LONG_CLICK_INTERVAL=1000 LONG_CLICK_FUZZ=200 这两者参数大小,.