如何校正k230的linux系统中pyqt5程序显示在触摸屏时的触摸点坐标?

Viewed 39

问题描述


首先我用evtest测试触摸屏是正常的:evtest /dev/input/event0。
参考如下文档 https://kvftsfijpo.feishu.cn/docx/Noikd6tIyon2NJxZmWock0FUnWh
lcd参考如下命令配置pyqt
cat << EOF > /etc/profile.d/qt_env.sh
export QT_QPA_PLATFORM=linuxfb
export QT_QPA_FB_DRM=1
export QT_QPA_EGLFS_KMS_CONFIG="/root/kms_config.json"
EOF
cat << EOF > /root/kms_config.json
{
"device": "/dev/dri/card0",
"outputs": [
{ "name": "DSI1", "format": "argb8888" }
]
}
EOF
设置了将PYQT界面显示到MIPI屏幕。
但是我点击PYQT5程序的按钮没有反应,通过其他测试发现当我随机点击屏幕中的一些随机位置时在终端打印的坐标如图:
9e9370e554a7eb3eeccab77df14e1817.png
如何校正在pyqt5程序中点击屏幕获取到的坐标?

硬件板卡


01 K230

软件版本


CanMV-K230_01studio_debian_v0.6.4_nncase_v2.10.0.img

1 Answers

设备树增加如下属性:

    touchscreen-size-x = <480>;
    touchscreen-size-y = <800>;

output/k230_canmv_01studio_defconfig/build/linux-7d4e1f444f461dbe3833bd99a4640e7b6c2cd529/arch/riscv/boot/dts/canaan/k230-canmv-01studio-lcd.dts
修改完后make linux-rebuild;替换下设备上的/boot/k230-canmv-01studio-lcd.dtb 文件;
&i2c3
{
status = "okay";

touchscreen@38
{
	compatible = "edt,edt-ft5306";
	reg = <0x38>;
	reset-gpios = <&gpio0_ports 22 GPIO_ACTIVE_LOW>;
	interrupt-parent = <&gpio0_ports>;
	interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
	touchscreen-size-x = <480>;
    touchscreen-size-y = <800>;
};

};