新闻中心

EEPW首页>嵌入式系统>设计应用> 基于ARM9的物流终端定位功能的实现

基于ARM9的物流终端定位功能的实现

作者: 时间:2011-08-22 来源:网络 收藏
2)Linux串口通信编程

本文引用地址://m.amcfsurvey.com/article/150314.htm

  嵌入式Linux操作系统使用接口标准POSIX的termios接口来控制串口的行为。在Linux系统中,串口等设备被当作文件进行处理,其程序模块主体如下:

  int fd=open(/dev/ttyS1,O_RDWRIO_NOCTTY);//打开串口

  ……

  new_options.c_cflag =~PARENB;//无奇偶校验

  new_options.c_cflag =~CSIZE;//不隐藏数据位

  new_options.c_cflag =~CSTOP8;//无停止位

  new_options.c_cflag |=CS8;//8位数据位

  cfsetispeed(new_options,B4800);//设置波特率4800bit/s

  cfsetospeed(new_options,B4800);

  tcflush(fd,TCIOFLUSH);

  tcsetattr(fd,TCSANOW,new_options);//设置新的设备方式

  完成串口设置后,就可以使用read( )、write( )函数对串口进行操作。需注意的是,串口默认是阻塞型的,当没有数据到达时,将会阻塞挂起,这时可以通过多线程编程、串口超时设定或使用select轮询等方式进行调整控制。本系统主要采用多线程编程对串口阻塞的调控,使用的是QT的Qthread类,也可以直接使用Linux自身的多线程函数进行操作。

  3)QT/Embedded编程

  Qt/Embedded是著名的Qt库开发商TrollTech正在进行的framebuffer的面向嵌入式系统的Qt版本。因其面向对象、跨平台和界面设计方便美观而得到广泛应用。

  本设计采用QT/Embedded 3.3.4版本,它支持SQLITE数据库驱动,便于数据库操作与编程。设计主要使用了QTE的画布模块、SQL模块和网络模块。画布模块中,QCanvas库是一个高度优化的二维绘图库,与其它画布模块结合使用,能很方便地导航地图的显示、缩放、漫游以及鹰眼等。而SQL模块和网络模块能很方便地实现数据库编程和网络通信,极大地缩短了程序的开发周期,提高了开发效率。

  初步实现

误差主要取决于GPS-OEM模块的精度,实验显示本系统能初步满足信息的需求。

 结束语

  实验证明:系统定位数据精确、界面友好、系统可扩展性强,较好地完成了信息化定位功能。本系统可用于定位导航,也可适用于其它需要定位导航服务的场合,具有较普遍的适用价值和参考价值。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭