树莓派(Linux系统)触摸屏翻转显示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

树莓派(Linux系统)触摸屏翻转显⽰树莓派(Linux 系统)触摸屏翻转显⽰以及触摸翻转
问题:未使⽤的Pi官⽅屏幕,所以使⽤HDMI屏幕显⽰的时候,显⽰旋转的同时,触摸没有旋转
⽬的:旋转屏幕显⽰的同时,使得触摸也跟随旋转
操作总流程:
旋转90度操作
翻转显⽰:
1.sudo nano /boot/config.txt
2.在⽂件末尾加⼊
display_rotate=0
display_rotate=1 //90°
display_rotate=2 //180°
display_rotate=3 //270°
ctrl + o 保存⽂档重启即可。

注:以下操作皆为SSH操作,所以每条指令前都加了DISPLAY=:0,如果本机操作删掉即可。

1.安装xinput
sudo apt-get install xinput
2.列出所有输⼊设备信息远程操作时,使⽤xinput指令需要加⼊DISPLAY=:0
DISPLAY=:0 xinput --list
3.列出⽬标设备属性
DISPLAY=:0 xinput --list-props 7
4.旋转触摸的坐标轴
1)所以先交换x、y轴
DISPLAY=:0 xinput --set-prop '7' 'Evdev Axes Swap' 1
2)然后反转y轴
DISPLAY=:0 xinput --set-prop '7' 'Evdev Axis Inversion' 0 1
显⽰旋转修改之后需要重启。

⽽触摸旋转不需要重启。

详细操作⽅法:
1.安装xinput
sudo apt-get install xinput
描述:
xinput - utility to configure and test X input devices
xinput-⽤于配置和测试X输⼊设备的实⽤程序
xinput is a utility to list available input devices,
xinput是⼀个实⽤程序,可以列出可⽤的输⼊设备、
query information about a device and change input device settings.
关于设备的查询信息和更改输⼊设备设置
2.列出所有输⼊设备信息
xinput --list
如果远程操作记得在命令前加DISPLAY=:0
得到以下信息:
pi@NTGAGE:~ $ DISPLAY=:0 xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜↳ Logitech USB Optical Mouse id=6 [slave pointer (2)]
⎜↳ WaveShare WaveShare Touchscreen id=7 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Logitech USB Keyboard id=8 [slave keyboard (3)]
↳ Logitech USB Keyboard id=9 [slave keyboard (3)]
3.列出⽬标设备属性
由于所使⽤的触摸屏幕是微雪7⼨屏幕,由以上信息可以得到微雪的触摸屏对应的ID为7
所以,接下来看这款输⼊设备的属性,
pi@NTGAGE:~ $ DISPLAY=:0 xinput --list-props 7
Device 'WaveShare WaveShare Touchscreen':
Device Enabled (115): 1
Coordinate Transformation Matrix (116): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (240): 0
Device Accel Constant Deceleration (241): 1.000000
Device Accel Adaptive Deceleration (242): 1.000000
Device Accel Velocity Scaling (243): 10.000000
Device Product ID (244): 3823, 5
Device Node (245): "/dev/input/event3"
Evdev Axis Inversion (246): 0, 0
Evdev Axis Calibration (247):
Evdev Axes Swap (248): 0
Axis Labels (249): "Abs MT Position X" (267), "Abs MT Position Y" (268), "Abs MT Pressure" (269), "None" (0), "None" (0), "None" (0) Button Labels (250): "Button Unknown" (233), "Button Unknown" (233), "Button Unknown" (233), "Button Wheel Up" (121), "Button Wheel Down" (122)
Evdev Scrolling Distance (251): 0, 0, 0
Evdev Middle Button Emulation (252): 0
Evdev Middle Button Timeout (253): 50
Evdev Third Button Emulation (254): 0
Evdev Third Button Emulation Timeout (255): 1000
Evdev Third Button Emulation Button (256): 3
Evdev Third Button Emulation Threshold (257): 20
Evdev Wheel Emulation (258): 0
Evdev Wheel Emulation Axes (259): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (260): 10
Evdev Wheel Emulation Timeout (261): 200
Evdev Wheel Emulation Button (262): 4
Evdev Drag Lock Buttons (263): 0
这块屏幕正常显⽰和触摸的信息如上。

如果执⾏到这⼀步,发现并没有以上的Evdev等属性项,请跳转第2种⽅法。

现在需要达到的⽬的是在屏幕显⽰反转的同时,使得触摸也随显⽰翻转。

屏幕显⽰为翻转90度。

/boot/config.txt设置为display_rotate=1
上述信息中Evdev Axis Inversion 项是每条轴的旋转设置项,后⾯第⼀个参数是x,第⼆个参数是y.
Evdev Axes Swap项对应的是两条轴的交换。

0为不翻转,1为翻转
例如。

x轴原本是朝向右的,当把Evdev Axis Inversion的第⼀个参数
设置为1,即x轴朝向左。

4.旋转触摸的坐标轴
现在⽬的是要触摸旋转90度,从坐标轴理解:
即⽬的x轴正向为初始y轴的反向。

⽬的y轴的正⽅向为初始x轴的正向。

1)所以先交换x、y轴
DISPLAY=:0 xinput --set-prop '7' 'Evdev Axes Swap' 1
2)然后反转y轴
DISPLAY=:0 xinput --set-prop '7' 'Evdev Axis Inversion' 0 1
这样即可完成触摸旋转90度。

若要旋转其他⾓度,推理⼀下即可。

显⽰旋转修改之后需要重启。

⽽触摸旋转不需要重启。

相关文档
最新文档