);[size=15.008px]因为屏幕是480x800的,所以直接用对应的宽高减去获得的值即可。
配置修改[color=var(--hljs-builtin-name)]make menuconfig[size=15.008px]选择:Kernel modules > Input modules -> kmod-input-core
选择:Kernel modules > Input modules -> kmod-touchscreen-focaltech # 其他触屏不选
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17141915172406[color=var(--secondary-high)]1352×848 238 KB
[color=var(--hljs-builtin-name)]make kernel_menuconfig[size=15.008px]选择:Device Drivers > Input device support > Touchscreens -> Focaltech Touchscreen # 其他不选
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17141916168969[color=var(--secondary-high)]1400×860 202 KB
编译烧录[size=15.008px]修改完成后,就可以进行编译打包make -j16 && pack,最终结果如下:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17141917046336[color=var(--secondary-high)]1012×392 85.9 KB
[size=15.008px]然后使用烧录工具进行烧录即可。
MIPI LCD测试[size=15.008px]将 MIPI LCD和板子连接好,注意连接正确:
[size=15.008px]然后用adb shell或者串口连接进行操作。
[color=var(--hljs-builtin-name)]cat /dev/input/
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17141919215450[color=var(--secondary-high)]972×224 41.9 KB
[size=15.008px]从上面的输出可以看到event2,表示识别到了。
[size=15.008px]再看看系统启动输出信息中,对应的适配信息:
dmesg | [color=var(--primary-very-high)]grep -A4 -B4 fts
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17141919915702[color=var(--secondary-high)]1434×420 174 KB
[size=15.008px]可以看到,已经成功适配,没有出错信息。
[color=var(--hljs-builtin-name)]cat /dev/input/event2 | hexdump -x[size=15.008px]执行后,点击屏幕任一位置,有返回,说明能够接收到触摸数据了:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17141921825121[color=var(--secondary-high)]1030×504 181 KB
- 屏幕校准
初次使用屏幕时,需要进行屏幕校准,确保点击位置准确,以免发生偏差。
[color=var(--hljs-comment)]## 触屏校准[color=var(--hljs-builtin-name)]export TSLIB_CALIBFILE=/etc/pointercal[color=var(--hljs-builtin-name)]export TSLIB_CONFFILE=/etc/ts.conf[color=var(--hljs-builtin-name)]export TSLIB_PLUGINDIR=/usr/lib/ts[color=var(--hljs-builtin-name)]export TSLIB_CONSOLEDEVICE=none[color=var(--hljs-builtin-name)]export TSLIB_FBDEVICE=/dev/fb0[color=var(--hljs-builtin-name)]export TSLIB_TSDEVICE=/dev/input/event2ts_calibrate[size=15.008px]执行后,输出如下:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17141922781640[color=var(--secondary-high)]848×304 86.3 KB
[size=15.008px]此时屏幕显示如下:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17141924390191[color=var(--secondary-high)]1706×1279 231 KB
[size=15.008px]点击左上角的那个 + ,又会出现下一个,依次点击:左上、右上、右下、左下、中间,最后黑屏。
[size=15.008px]输出信息如下:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17141925250949[color=var(--secondary-high)]964×498 87.2 KB
[size=15.008px]点击的时候,如果点左上角,发现X值是400+,Y值是700+,那铁定是前面的驱动文件没有修改或者修改不对,或者修改了没有重新编译烧录。
[size=15.008px]校准完成后,重启生效:
sudo reboot -d 0- 使用lvgl测试用例
在使用lv_examples之前,需要做一些修改,使得触摸使用/dev/input/event2
文件:
~/tina-d1-h/package/gui/littlevgl-8lv_examples/src/lv_drv_conf.h[size=15.008px]修改:
[color=var(--primary-very-high)]define EVDEV_NAME [color=var(--hljs-string)]"/dev/input/event2"[size=15.008px]修改完成后,重新编译烧录即可。
[size=15.008px]然后,使用 lv_examples进行测试:
[color=var(--hljs-string)]lv_examples [color=var(--hljs-number)]9999[size=15.008px]会输出如下结果,表示有5个测试用例可用:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]image[color=var(--secondary-high)]780×244 24.6 KB
[size=15.008px]大家可以依次测试看看效果如何。
[size=15.008px]这里就展示lv_examples 0,结果如下:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17141928400692[color=var(--secondary-high)]752×170 38.6 KB
[size=15.008px]屏幕显示如下:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17141928934191[color=var(--secondary-high)]1706×1279 310 KB
[size=15.008px]左右滑动,上下滑动,或者点击屏幕上的输入位置,就能够进行操作了。
触摸操作的时候,如果发现上面点了下面动,下面点了上面动,或者滑动刚好和实际方向相反,那铁定是前面的驱动文件没有修改或者修改不对,或者修改了没有重新编译烧录。
[size=15.008px]现在,屏幕适配好了,触摸也适配好了,后面就可以学学LVGL,来进行界面和互动设计开发了。