0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)C#通過串口讀取GPS模塊定位數(shù)據(jù)的方法

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-14 11:33 ? 次閱讀

有人云:'GPS的應用,僅受人們的想象力制約。'GPS問世以來,已充分顯示了其在導航定位領域的霸主地位。許多領域也由于GPS的出現(xiàn)而產(chǎn)生革命性變化。目前,幾乎全世界所有需要導航定位的用戶,都被GPS的高精度、全天候、全球覆蓋、方便靈活和優(yōu)質(zhì)價廉所吸引。在嵌入式產(chǎn)品的開發(fā)應用中,很多領域都涉及到GPS導航和定位的應用;英創(chuàng)的很多用戶,就是在英創(chuàng)的嵌入式主板的基礎上,外接GPS應用模塊,來實現(xiàn)GPS在各種領域的合理運用。英創(chuàng)隨之也向用戶提供了相關(guān)GPS的方案和例程,供用戶在實際應用中進行參考。本文介紹了英創(chuàng)C# GPS例程通過串口讀取GPS模塊定位數(shù)據(jù)的方法。
GPS模塊只要處于工作狀態(tài)就會源源不斷地把接收并計算出的GPS導航定位信息傳送到連接到它的嵌入式主板串口之上,在沒有進一步處理之前,傳送的數(shù)據(jù)是一長串字節(jié)流信息。因此必須經(jīng)過程序?qū)⑵滢D(zhuǎn)化為有實際意義的;可供高層決策使用的定位信息數(shù)據(jù)。與其他通信協(xié)議類似,GPS模塊都遵循NMEA-0183協(xié)議,GPS進行信息提取,必須明確其幀結(jié)構(gòu),然后才能根據(jù)其結(jié)構(gòu)完成對各個定位信息的提??;其發(fā)送到串口的數(shù)據(jù)主要由幀頭,幀尾和幀內(nèi)數(shù)據(jù)組成。根據(jù)數(shù)據(jù)幀的不同,幀頭也不相同,主要有“#GPGGA”,“$GPGSA”,“$GPRMC”等。這些幀頭標識了后續(xù)幀內(nèi)數(shù)據(jù)的組成結(jié)構(gòu),各幀均以回車符和換行符作為幀尾標識一幀的結(jié)束。對于通常的情況,大家所關(guān)心的定位數(shù)據(jù)如經(jīng)緯度、速度、時間、航向等均以“$GPRMC”中獲取得到。該幀的結(jié)構(gòu)及各字段釋義如下:
例:$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50
字段0:$GPRMC,語句ID,表明該語句為Recommended Minimum Specific GPS/TRANSIT Data(RMC)推薦最小定位信息
字段1:UTC時間,hhmmss.sss格式
字段2:狀態(tài),A=定位,V=未定位
字段3:緯度ddmm.mmmm,度分格式(前導位數(shù)不足則補0)
字段4:緯度N(北緯)或S(南緯)
字段5:經(jīng)度dddmm.mmmm,度分格式(前導位數(shù)不足則補0)
字段6:經(jīng)度E(東經(jīng))或W(西經(jīng))
字段7:速度,節(jié),Knots
字段8:方位角,度
字段9:UTC日期,DDMMYY格式
字段10:磁偏角,(000 - 180)度(前導位數(shù)不足則補0)
字段11:磁偏角方向,E=東W=西
字段16:校驗值
對于用戶的應用程序來講,要讀取GPS模塊的定位數(shù)據(jù),無非是實現(xiàn)兩個簡單的步驟:(1)讀取串口數(shù)據(jù);(2)將讀取的數(shù)據(jù)解析出來。
我們以預裝了WinCE嵌入式操作系統(tǒng)ARM9主板EM9161來連接GPS模塊,用C#來實現(xiàn)讀取GPS模塊發(fā)過來的串口數(shù)據(jù),最方便的方法是直接使用VS2005提供的SerialPort串口類,這個串口類提供一個DataRecieved事件響應機制,可以簡單方便地讀取串口數(shù)據(jù),如:
private SerialPort myserialPort = new SerialPort(); // 定義SerialPort串口類對象myserialPort
……
myserialPort.DataReceived += new SerialDataReceivedEventHandler(myserialPort_DataReceived);
// 當串口有數(shù)據(jù)收到時,啟動myserialPort_DataRecieved事件函數(shù)
收到的串口數(shù)據(jù)是標準的string字符串,以“$GPRMC”開頭的幀為例,收到的每一幀數(shù)據(jù)string都以回車換行符為結(jié)尾,可以以回車換行符為標志將數(shù)據(jù)string提取出來;而且這個數(shù)據(jù)幀的每個元素均以逗號分隔,可以通過逗號分隔將這個數(shù)據(jù)幀的每個元素提取到一個string數(shù)組里面進行進一步處理。如:
string GPS_text = ''; // 字符串GPS_text = 接收到的串口數(shù)據(jù),缺省定義為空
// 串口有數(shù)據(jù)收到
private void myserialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
GPS_text = GPS_text + myserialPort.ReadExisting(); // 讀取串口數(shù)據(jù)
if (GPS_text.EndsWith('\n')) // 如果GPS_text字符串最后一個字符是“回車”
{
Invoke(new EventHandler(update_data)); // 通過Invoke方法執(zhí)行update_data函數(shù)
}
}
private void update_data(object sender, EventArgs e)
{
string[] GPS_info = GPS_text.Split(','); // 按照逗號分隔把$GPRMC各種信號分割到字符串數(shù)組
…… // 處理GPS_info字符串數(shù)組,完成GPS數(shù)據(jù)顯示、處理等功能
GPS_text = ''; // 置空GPS_text以便存儲新的串口接收到的字符串
}
英創(chuàng)提供的例程運行界面如下:

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6084

    瀏覽量

    35162
收藏 人收藏

    評論

    相關(guān)推薦

    中科創(chuàng)達榮獲2024年軟件和信息技術(shù)服務優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達憑借非凡的技術(shù)實力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務競爭力百強企業(yè)”以及“2024年軟件和信息技術(shù)服務優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?339次閱讀

    芯伯樂產(chǎn)品在GPS定位模塊上的設計方案

    模塊方框圖01產(chǎn)品介紹及應用ProductIntroductionandApplicationGPS是英文GlobalPositioningSystem(全球定位系統(tǒng))的簡稱。利用GPS定位
    的頭像 發(fā)表于 10-15 08:07 ?153次閱讀
    芯伯樂產(chǎn)品在<b class='flag-5'>GPS</b><b class='flag-5'>定位</b><b class='flag-5'>模塊</b>上的設計方案

    GPS/北斗RTK差分定位系統(tǒng)的技術(shù)原理以及應用領域

    全球定位系統(tǒng)(GPS)和北斗衛(wèi)星導航系統(tǒng)(BDS)都是使用衛(wèi)星提供定位和導航信息的先進系統(tǒng),它們在各個行業(yè)得到廣泛應用。本文將探討GPS/北
    的頭像 發(fā)表于 09-27 10:35 ?604次閱讀
    <b class='flag-5'>GPS</b>/北斗RTK差分<b class='flag-5'>定位</b>系統(tǒng)的<b class='flag-5'>技術(shù)</b>原理以及應用領域

    智慧園區(qū)人員定位及軌跡追蹤技術(shù)探討

    追蹤的相關(guān)技術(shù)和應用。 一、智慧園區(qū)人員定位技術(shù) 在智慧園區(qū)中,有許多方法可以實現(xiàn)人員的準確定位。以下將介紹幾種常見的人員
    的頭像 發(fā)表于 08-28 11:31 ?323次閱讀

    IP地址定位GPS定位技術(shù)解析與應用比較

    IP地址定位GPS定位是比較常見的定位技術(shù)。本文將與大家探討這兩種技術(shù)的工作原理、優(yōu)缺點及其在
    的頭像 發(fā)表于 07-16 13:50 ?375次閱讀

    5分鐘讀懂GPS-RTK實時動態(tài)技術(shù),建議收藏!

    由于”智慧工地“理念的興起和發(fā)展,目前越來越多的企業(yè)將信息技術(shù)手段融合于施工現(xiàn)場安全管理,構(gòu)建智能化的安全監(jiān)管模式?;诖?,藍牙+LORA融合定位技術(shù)、UWB超寬帶定位
    的頭像 發(fā)表于 07-04 17:32 ?757次閱讀
    5分鐘讀懂<b class='flag-5'>GPS</b>-RTK實時動態(tài)<b class='flag-5'>技術(shù)</b>,建議收藏!

    基于STM32單片機的GPS定位系統(tǒng)設計

    本次設計的定位系統(tǒng),是以STM32單片機作為核心控制器,可以控制 GPS 定位模塊對經(jīng)緯度信息進行采集,可以對安全值進行設定,當超過安全范圖
    的頭像 發(fā)表于 06-24 09:50 ?1835次閱讀
    基于STM32單片機的<b class='flag-5'>GPS</b><b class='flag-5'>定位</b>系統(tǒng)設計

    利用自定義數(shù)據(jù)傳輸在機智云上實現(xiàn)GPS定位數(shù)據(jù)的傳輸

    GPS定位數(shù)據(jù)通常以經(jīng)度和緯度的形式表示,是一種地理位置信息。要將GPS定位數(shù)據(jù)加入機智云平臺,可以通過
    的頭像 發(fā)表于 05-09 08:10 ?365次閱讀
    利用自定義<b class='flag-5'>數(shù)據(jù)</b>傳輸在機智云上實現(xiàn)<b class='flag-5'>GPS</b><b class='flag-5'>定位數(shù)據(jù)</b>的傳輸

    基于STM32的GPS定位

    簡介: 基于STM32的GPS定位儀項目結(jié)合了高性能MCU與GPS技術(shù),實現(xiàn)了一種功能強大、成本合理的定位方案。MCU解析
    的頭像 發(fā)表于 05-07 09:45 ?754次閱讀
    基于STM32的<b class='flag-5'>GPS</b><b class='flag-5'>定位</b>儀

    UWB定位技術(shù)GPS定位區(qū)別及應用

    GPS定位技術(shù)是一種基于衛(wèi)星定位系統(tǒng)的全球定位技術(shù),其主要優(yōu)勢在于可以覆蓋全球范圍,并且能夠提供
    的頭像 發(fā)表于 04-24 16:52 ?1758次閱讀
    UWB<b class='flag-5'>定位</b><b class='flag-5'>技術(shù)</b>與<b class='flag-5'>GPS</b><b class='flag-5'>定位</b>區(qū)別及應用

    安信可A9G開發(fā)板上報GPS定位數(shù)據(jù)實現(xiàn)微信公眾號定位顯示

    文章目錄 一、準備工作 1.1 硬件準備 1.2軟件準備 1.3微信公眾號 二、AT指令 三、相關(guān)配置 四、訂閱信息和上報數(shù)據(jù)到公眾號 五、聯(lián)系我們 前言 本文將介紹如何使用將A9G通過GPS
    的頭像 發(fā)表于 03-21 11:26 ?501次閱讀
    安信可A9G開發(fā)板上報<b class='flag-5'>GPS</b><b class='flag-5'>定位數(shù)據(jù)</b>實現(xiàn)微信公眾號<b class='flag-5'>定位</b>顯示

    手機定位技術(shù)之衛(wèi)星定位和移動基站定位

    GPS 是一種通過衛(wèi)星信號來確定接收設備位置的定位技術(shù)。手機內(nèi)置的 GPS 芯片可以接收來自衛(wèi)星的信號,
    的頭像 發(fā)表于 02-26 15:19 ?4762次閱讀
    手機<b class='flag-5'>定位</b><b class='flag-5'>技術(shù)</b>之衛(wèi)星<b class='flag-5'>定位</b>和移動基站<b class='flag-5'>定位</b>

    什么是gps定位? gps定位放線的步驟有哪些

    用戶的位置,從而實現(xiàn)定位。 GPS定位放線是一種使用GPS技術(shù)進行精確測量和放線的方法。它常用于
    的頭像 發(fā)表于 01-22 15:48 ?6293次閱讀

    C#網(wǎng)絡串口調(diào)試助手源碼

    非常牛B網(wǎng)絡串口調(diào)試助手C#源碼,支持添加多條協(xié)議
    發(fā)表于 12-27 09:45 ?4次下載

    GPS能室內(nèi)定位嗎?

    GPS能室內(nèi)定位嗎? GPS(全球衛(wèi)星導航系統(tǒng))是一種使用衛(wèi)星技術(shù)進行定位和導航的系統(tǒng),它可以在戶外環(huán)境下非常準確地確
    的頭像 發(fā)表于 12-12 14:39 ?2160次閱讀