新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM9的物流終端定位功能的實(shí)現(xiàn)

基于ARM9的物流終端定位功能的實(shí)現(xiàn)

作者: 時(shí)間:2011-08-22 來(lái)源:網(wǎng)絡(luò) 收藏
2)Linux串口通信編程

本文引用地址:http://butianyuan.cn/article/150314.htm

  嵌入式Linux操作系統(tǒng)使用接口標(biāo)準(zhǔn)POSIX的termios接口來(lái)控制串口的行為。在Linux系統(tǒng)中,串口等設(shè)備被當(dāng)作文件進(jìn)行處理,其程序模塊主體如下:

  int fd=open(/dev/ttyS1,O_RDWRIO_NOCTTY);//打開(kāi)串口

  ……

  new_options.c_cflag =~PARENB;//無(wú)奇偶校驗(yàn)

  new_options.c_cflag =~CSIZE;//不隱藏?cái)?shù)據(jù)位

  new_options.c_cflag =~CSTOP8;//無(wú)停止位

  new_options.c_cflag |=CS8;//8位數(shù)據(jù)位

  cfsetispeed(new_options,B4800);//設(shè)置波特率4800bit/s

  cfsetospeed(new_options,B4800);

  tcflush(fd,TCIOFLUSH);

  tcsetattr(fd,TCSANOW,new_options);//設(shè)置新的設(shè)備方式

  完成串口設(shè)置后,就可以使用read( )、write( )函數(shù)對(duì)串口進(jìn)行操作。需注意的是,串口默認(rèn)是阻塞型的,當(dāng)沒(méi)有數(shù)據(jù)到達(dá)時(shí),將會(huì)阻塞掛起,這時(shí)可以通過(guò)多線程編程、串口超時(shí)設(shè)定或使用select輪詢等方式進(jìn)行調(diào)整控制。本系統(tǒng)主要采用多線程編程對(duì)串口阻塞的調(diào)控,使用的是QT的Qthread類,也可以直接使用Linux自身的多線程函數(shù)進(jìn)行操作。

  3)QT/Embedded編程

  Qt/Embedded是著名的Qt庫(kù)開(kāi)發(fā)商TrollTech正在進(jìn)行的framebuffer的面向嵌入式系統(tǒng)的Qt版本。因其面向?qū)ο蟆⒖缙脚_(tái)和界面設(shè)計(jì)方便美觀而得到廣泛應(yīng)用。

  本設(shè)計(jì)采用QT/Embedded 3.3.4版本,它支持SQLITE數(shù)據(jù)庫(kù)驅(qū)動(dòng),便于數(shù)據(jù)庫(kù)操作與編程。設(shè)計(jì)主要使用了QTE的畫(huà)布模塊、SQL模塊和網(wǎng)絡(luò)模塊。畫(huà)布模塊中,QCanvas庫(kù)是一個(gè)高度優(yōu)化的二維繪圖庫(kù),與其它畫(huà)布模塊結(jié)合使用,能很方便地導(dǎo)航地圖的顯示、縮放、漫游以及鷹眼等。而SQL模塊和網(wǎng)絡(luò)模塊能很方便地實(shí)現(xiàn)數(shù)據(jù)庫(kù)編程和網(wǎng)絡(luò)通信,極大地縮短了程序的開(kāi)發(fā)周期,提高了開(kāi)發(fā)效率。

  初步實(shí)現(xiàn)

  誤差主要取決于GPS-OEM模塊的精度,實(shí)驗(yàn)顯示本系統(tǒng)能初步滿足信息對(duì)的需求。

  結(jié)束語(yǔ)

  實(shí)驗(yàn)證明:系統(tǒng)定位數(shù)據(jù)精確、界面友好、系統(tǒng)可擴(kuò)展性強(qiáng),較好地完成了信息化定位功能。本系統(tǒng)可用于定位導(dǎo)航,也可適用于其它需要定位導(dǎo)航服務(wù)的場(chǎng)合,具有較普遍的適用價(jià)值和參考價(jià)值。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉