使用STM32和GP-01获取信息
扫描二维码
随时随地手机看文章
GP-01是一种高性能BDS/GNSS多星座卫星导航接收机SOC模块。
利用STM32和GP-01定位模块获取经纬度信息
GP-01模块简介
GP-01是一种高性能BDS/GNSS多星座卫星导航接收机SOC模块。
它集成了射频前端、数字基带处理器、32位RISC CPU、电源管理和有源天线检测和保护功能。它支持多种卫星导航系统,包括中国的BDS,美国的GPS和俄罗斯的GLONASS,实现多系统联合定位。
本文以GP-01 - Kit开发板为例,介绍如何通过STM32获取GP-01的经纬度信息。
1. 硬件准备
该驱动程序涉及的硬件包括GP-01-Kit, stm32f103c8t6最小系统板,USB - TTL转换器,ST - Link和几根跳线。
1.1 GP-01 - Kit
GP-01开发板需要5V电源。
1.2 STM32F103C8T6核心板或最小开发板
编程可以通过串行端口或使用ST - Link或J - Link来完成。
1.3布线
GP-01 - Kit开发板与STM32F103C8T6之间以及STM32F103C8T6与USB - TTL转换器之间的接线如下表所示。
另外,请使用Android线缆将GP-01-Kit与串口连接,为设备供电。
2. 软件准备
2.1 MDK (Keil v5)
下载方法请参考在线示例。
2.2串口调试助手(SSCOM)
用于查看STM32 UART驱动器从GP-01获取的经纬度输出信息。
3. n mea
GP-01支持NMEA - 0183协议,上电后将数据输出到串口。该数据采用所有GPS接收机的格式,是最通用的数据输出格式。NMEA - 0183协议定义了许多语句,但最常用和最广泛兼容的是GPGGA、GPGSA、GPGSV、GPRMC、GPVTG和GPGLL。要获取经纬度,请关注$GNRMC信息。
GPRMC协议如下:
GPRMC(建议使用最小的GPS数据格式)
GPRMC美元,< 1 >,< 2 >,< 3 >,< 4 >,< 5 >,< 6 >,< 7 >,< 8 >,< 9 >,< 10 >,< 11 >
(1)标准定位时间(UTC时间)格式:hmmss.sss。
(2)定位状态,A =有数据,V =无数据。
(3)纬度,格式:ddmm.mm。
(4)纬度半球,北半球用N,南半球用S。
(5)经度,格式:dddmm.mmmm。
(6)经度半球,东半球为E,西半球为W。
(7)相对航速:0.0至1851.8节。
(8)相对航迹良好,000.0至359.9度。实际值。
(9)日期格式:ddmyy。
(10)磁差:0000.0 ~ 180.0。
(11)度。
(12)校验和。
4. STM32程序实现
源代码获取方法:
提取代码:AIXK
4.1串口编码
GPS和STM32之间的通信使用UART3。下面是UART3的初始化代码:
UART3使用基于中断的接收将数据存储在缓冲区中。代码如下:
4.2 GPS编码
在gps.h中,定义了一个结构来存储解析后的数据:
解析GPS数据:
4.3主要功能
5. 实现结果
获得的定位数据如下:
本文编译自hackster.io