承接上文,完成触摸屏驱动,以下代码在上一篇文章中添加内容即可。
ZYNQ --- Linux成长之路 --- LCD显示屏-CSDN博客
参考文章:
《3_领航者ZYNQ之嵌入式Linux开发指南_V2.2》---第51章触摸屏驱动实验
1、平台搭建
显示屏使用的正点原子官方显示屏:
2、PL端设计
LCD显示屏的驱动主要使用的是EMIO接口,所以主要更改ZYNQ核的设置,需要更改三个地方。
1、使能I2C1,并将该接口配置为EMIO
2、使能EMIO普通IO的功能,然后设置EMIO的长度为2
3、添加约束文件
如图所示:
#-----LCD触摸屏----
#--INT--
set_property -dict {PACKAGE_PIN E17 IOSTANDARD LVCMOS33} [get_ports {GPIO_0_0_tri_io[0]}]
#--RESET--
set_property -dict {PACKAGE_PIN B20 IOSTANDARD LVCMOS33} [get_ports {GPIO_0_0_tri_io[1]}]
#--IIC--
set_property -dict {PACKAGE_PIN D18 IOSTANDARD LVCMOS33} [get_ports IIC_1_0_scl_io]
set_property -dict {PACKAGE_PIN K18 IOSTANDARD LVCMOS33} [get_ports IIC_1_0_sda_io]
3、Linux系统搭建
修改system-user.dtsi设备树内容:
&i2c1 {
clock_frequency = <100000>;
gt9147:ts@14 {
compatible = "goodix,gt9147";
reg = <0x14>;
status = "okay";
interrupt-parent = <&gpio0>;
interrupts = <54 0>;
interrupt-gpio = <&gpio0 54 GPIO_ACTIVE_LOW>;
reset-gpio = <&gpio0 55 GPIO_ACTIVE_LOW>;
};
};
重新编译一下Linux内核,就可以了
按一下就会打印123,我按了几次
QT界面遇到的问题:
界面开发采用的是QT Creator,需要在rootfs中添加Qt支持的库,这里添加的有:
ZYNQ启动进入串口控制台后,需要在 /etc/profile中最下方添加环境变量:
export QT_QPA_PLATFORM=linuxfb