龙芯技术社区
直播中

tinnu

8年用户 133经验值
擅长:可编程逻辑 嵌入式技术 控制/MCU
私信 关注
[2K系列]

【龙芯2K0300蜂鸟板试用】第三方触摸屏测试+Qt界面程序适配、编译、部署

loongson 蜂鸟 触摸屏 Qt界面程序

触摸屏设置

  • 从蜂鸟板的手册来看,使用的配件都是正点原子规格的。

  • 我手上没有正点原子的RGB屏幕,只有一些MCU的,但MCU款用的是8080接口,不可用。而一些RGB接口定义跟正点原子不兼容。

    • 看了看正点原子的屏幕,感觉有点贵,于是祭出转接大发,把手上从海鲜市场淘来的屏幕转成正点原子的接口。
    • 先在原子的板子上测一下兼容性:

    screen1.jpg

  • 正点原子的RGB触摸屏配置:

    • 4.3寸触摸屏:gt9147
    • 7寸触摸屏:GT911
    • 我的屏幕是7寸,用的也是GT911。看起来非常匹配,但是我这个7寸是800x480的,而正点原子的屏幕是 1024x600 的。这就很尴尬了,我上级后发现,触摸确实不能用,但插上鼠标可以控制。
  • 查看设备树

    • buildroot/package/loongson_kernel/tmp/ls2k300_mini_dp.dts
    • 关于触摸屏有这么一段。我将4.3寸的也改成gt911重新编译uImage,但是测试发现还是不行。
    • 经过一系列怀疑人生的测试后,结果发现是排线的问题,换一根排线就好了……
    • 设备树的注释虽然指定了4.3寸和7寸的触摸芯片,实际上是自动识别的。
    &i2c1 {
    	status = "ok";
    
    	// 两款芯片不能同时支持,因为用同一个GPIO
    	// 但可以在两个屏幕间切换
    
    	// 4.3寸触屏芯片
    	touchpad: gt9147@14 {
    		compatible = "goodix,gt9147";
    		reg = <0x14>;
    		// 2K300 GPIO 支持中断控制
    		// GPIO 中断号为 vhwirq-base + pinnum (210 = 128 + 82)
    		interrupt-parent = <&gpio>;
    		interrupts = <210 IRQ_TYPE_EDGE_FALLING>;
    		irq-gpios = <&gpio 82 GPIO_ACTIVE_LOW>;
    	};
    
    	// 7寸触屏芯片
    	touchpad_1: gt911@5d {
    		compatible = "goodix,gt911";
    		reg = <0x5d>;
    		interrupt-parent = <&gpio>;
    		interrupts = <210 IRQ_TYPE_EDGE_FALLING>;
    		irq-gpios = <&gpio 82 GPIO_ACTIVE_LOW>;
    	};
    };
    

触摸屏启动

  • 刚上手,触摸屏是无驱动的,根据蜂鸟版手册,需要进入uboot修改分辨率:

boot-设置1.png

boot-设置2.png

  • 搜索GTP,可以看到触摸芯片的识别情况。

    • 如果识别成功,会有911 ID打印出来:

    boot-log-succ.png

    • 识别失败则什么都没有。而且有几率狂飙I2C错误LOG。

    boot-log-fail1.png
    boot-log-fail2.png

  • 进入系统后使用 也可以检查I2C芯片的通讯

    • 从上面设备树可以看到,i2c挂载在i2c1上, GT911的ID为0x5D。
    • i2cdump -f -y 1 0x5D
  • 原始的界面是一个gif显示界面:
    loongson蜂鸟qt1-.jpg
    loongson蜂鸟qt1.gif

Qt程序开发

  • Qt适配情况

    • 网盘的09-虚拟机Qt目录下有Qt交叉编译环境。
    • 系统内部也集成了tslib驱动

    qt-tslib.png

  • 对于qmake程序,需要指定对应编译链的qmake配置:

    • Qt-5.15.2-LA64/mkspecs/
  • 对于cmake程序,只需要在编译的时候指定三个变量:

功能 参数
Qt CMAKE配置路径 CMAKE_PREFIX_PATH Qt-5.15.2-LA64/lib/cmake
C编译链 CMAKE_C_COMPILER loongson-gnu-toolchain-x86_64-loongarch64-linux-gnu/bin/loongarch64-linux-gnu-gcc
C++编译链 CMAKE_CXX_COMPILER loongson-gnu-toolchain-x86_64-loongarch64-linux-gnu/bin/loongarch64-linux-gnu-g++
  • 编译:

    • cmake .. -DCMAKE_C_COMPILER=loongarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=loongarch64-linux-gnu-g++ -DCMAKE_PREFIX_PATH=Qt-5.15.2-LA64/lib/cmake

Qt程序测试

loongson蜂鸟qt2-.jpg

更多回帖

发帖
×
20
完善资料,
赚取积分