使用STM32和GP-01獲取信息
GP-01是一種高性能BDS/GNSS多星座衛(wèi)星導(dǎo)航接收機(jī)SOC模塊。
利用STM32和GP-01定位模塊獲取經(jīng)緯度信息
GP-01模塊簡(jiǎn)介
GP-01是一種高性能BDS/GNSS多星座衛(wèi)星導(dǎo)航接收機(jī)SOC模塊。
它集成了射頻前端、數(shù)字基帶處理器、32位RISC CPU、電源管理和有源天線檢測(cè)和保護(hù)功能。它支持多種衛(wèi)星導(dǎo)航系統(tǒng),包括中國(guó)的BDS,美國(guó)的GPS和俄羅斯的GLONASS,實(shí)現(xiàn)多系統(tǒng)聯(lián)合定位。
本文以GP-01 - Kit開(kāi)發(fā)板為例,介紹如何通過(guò)STM32獲取GP-01的經(jīng)緯度信息。
1. 硬件準(zhǔn)備
該驅(qū)動(dòng)程序涉及的硬件包括GP-01-Kit, stm32f103c8t6最小系統(tǒng)板,USB - TTL轉(zhuǎn)換器,ST - Link和幾根跳線。
1.1 GP-01 - Kit
GP-01開(kāi)發(fā)板需要5V電源。
1.2 STM32F103C8T6核心板或最小開(kāi)發(fā)板
編程可以通過(guò)串行端口或使用ST - Link或J - Link來(lái)完成。
1.3布線
GP-01 - Kit開(kāi)發(fā)板與STM32F103C8T6之間以及STM32F103C8T6與USB - TTL轉(zhuǎn)換器之間的接線如下表所示。
另外,請(qǐng)使用Android線纜將GP-01-Kit與串口連接,為設(shè)備供電。
2. 軟件準(zhǔn)備
2.1 MDK (Keil v5)
下載方法請(qǐng)參考在線示例。
2.2串口調(diào)試助手(SSCOM)
用于查看STM32 UART驅(qū)動(dòng)器從GP-01獲取的經(jīng)緯度輸出信息。
3. n mea
GP-01支持NMEA - 0183協(xié)議,上電后將數(shù)據(jù)輸出到串口。該數(shù)據(jù)采用所有GPS接收機(jī)的格式,是最通用的數(shù)據(jù)輸出格式。NMEA - 0183協(xié)議定義了許多語(yǔ)句,但最常用和最廣泛兼容的是GPGGA、GPGSA、GPGSV、GPRMC、GPVTG和GPGLL。要獲取經(jīng)緯度,請(qǐng)關(guān)注$GNRMC信息。
GPRMC協(xié)議如下:
GPRMC(建議使用最小的GPS數(shù)據(jù)格式)
GPRMC美元,< 1 >,< 2 >,< 3 >,< 4 >,< 5 >,< 6 >,< 7 >,< 8 >,< 9 >,< 10 >,< 11 >
(1)標(biāo)準(zhǔn)定位時(shí)間(UTC時(shí)間)格式:hmmss.sss。
(2)定位狀態(tài),A =有數(shù)據(jù),V =無(wú)數(shù)據(jù)。
(3)緯度,格式:ddmm.mm。
(4)緯度半球,北半球用N,南半球用S。
(5)經(jīng)度,格式:dddmm.mmmm。
(6)經(jīng)度半球,東半球?yàn)镋,西半球?yàn)閃。
(7)相對(duì)航速:0.0至1851.8節(jié)。
(8)相對(duì)航跡良好,000.0至359.9度。實(shí)際值。
(9)日期格式:ddmyy。
(10)磁差:0000.0 ~ 180.0。
(11)度。
(12)校驗(yàn)和。
4. STM32程序?qū)崿F(xiàn)
源代碼獲取方法:
提取代碼:AIXK
4.1串口編碼
GPS和STM32之間的通信使用UART3。下面是UART3的初始化代碼:
UART3使用基于中斷的接收將數(shù)據(jù)存儲(chǔ)在緩沖區(qū)中。代碼如下:
4.2 GPS編碼
在gps.h中,定義了一個(gè)結(jié)構(gòu)來(lái)存儲(chǔ)解析后的數(shù)據(jù):
解析GPS數(shù)據(jù):
4.3主要功能
5. 實(shí)現(xiàn)結(jié)果
獲得的定位數(shù)據(jù)如下:
本文編譯自hackster.io