20180228做了这个项目之后,几个月来没有做过类似技术的,都忘干净了,于是回来有看。这里感慨下,写了博客真好。
并且对文中有解释的不够明确的用黑体字做了补充解释。
公司的产品需求,做便携式仪器,最开始使用的wince系统的板子,后来又使用微型的winxp或者win7的桌面操作系统的板子,wince虽然稳定,但是上游厂商已经不做支持。原因有三点:
1、微软原厂的策略,已不在WinCE系统上投入人力;
2、基于微软的策略,IC原厂也不再提供对WinCE BSP的维护,新处理器已经不再提供WinCE BSP;
3、当前各种外围模块厂家不提供对WinCE的驱动支持(比如摄像头、3G/WiFi/4G模块等众多重要外设)。
而winxp 和win7等桌面操作系统的板子,因为系统的原因,在用户强制断电的情况下,经常性的系统奔溃。这里我们不得不投向顺应市场Linux系统产品。这里我们选择了周立功的9600i-l工控主板。
EPC-9600I-L 是广州致远电子有限公司开发的基于 AM3352 处理器的工控主板。 板载 6路 RS232 串口(两路可通过软件切换,与 RS485 复用),两路 RS485 串口, 4 路 USB Host 2.0接口, 1 路 USB OTG、 1 路 10/100M 以太网接口、 2 路 CAN 接口、 1 路 TF 卡接口, 4 路ADC, 1 路音频输入输出, 还有 16 位 TFT 液晶接口和 4 线电阻式触摸屏接口。
这个工控主板完全可以满足我们的需求,而这里的编程 就是用的Qt,而以前的程序也是基于Qt开发,移植的工作量也是不会太大。
这样就开始了,配到的屏是LCD_TM070RDH12_24B,一个7寸800×480的。板子拿到手以后,用配的fpc排线连接屏和板子,上电后会发现屏并不能正常亮。这里就是因为开发板烧写的内核是一个480×272的4.3寸屏的内核,所以我们需要烧写一个对于的800×480的7寸屏的内核。这里具体烧写办法,在zlg的资料里面都有,按说明操作就行了。
下来就是调试了,这里就需要连接串口。这个工控板的接口不像一般的开发板一样是ttl电平,这个只能是rs232电平的。链接方法如图
后边就是移植开发板的qt库,因为板子文件系统自带的qt环境是qt4.7.3,而我们的程序是用5.6开发的,这里就需要移植新的qt库,好在zlg对qt5.6做了移植,这里我也拿到了对应的qt库。具体的操作方法如下:
这里需要讲一下,因为Linux的软硬链接复制的时候,可能会有问题,所以需要打包复制,打包完成以后可以通过scp传到板子的制定目录下,如:
scp qt5.tar.gz root@192.168.1.111:/opt/home按提示输入密码就行了。
运行是碰到一个bug,国外的网站上找到了解决方案
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointeral
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib/export QT_ROOT=/opt/qt_install
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event0
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts/
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins/
export QWS_MOUSE_PROTO=tslib:/dev/input/event0
export QT_QPA_FB_TSLIB=1
export QWS_DISPLAY=LinuxFB:/dev/fb0
export QWS_SIZE=800X480
export QT_QWS_FONTDIR=$QT_ROOT/lib/fonts
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QT_ROOT/libexport LD_PRELOAD=/lib/preloadable_libiconv.so


全部UTF8没有任何问题,在看这里
