GPS 代表全球定位系统,用于检测地球上任何位置的纬度和经度,具有精确的 UTC 时间(协调世界时)。该设备每秒从卫星接收坐标,包括时间和日期。GPS 提供了很高的准确性,并且还提供了位置坐标以外的其他数据。
我们都知道 GPS 是一种非常有用的设备,在手机和其他便携式设备中非常普遍用于跟踪位置。它在各个领域都有非常广泛的应用,从在家里叫出租车到跟踪飞机的高度。以下是我们之前构建的一些有用的GPS 相关项目。
在本教程中,我们将GPS 模块与 STM32F103C8 微控制器连接,以查找位置坐标并将其显示在16x2 LCD 显示器上。
所需组件
- STM32F103C8 微控制器
- GPS模块
- 16x2 液晶显示屏
- 面包板
- 连接线
GPS模块
这是一个 GY-NEO6MV2 XM37-1612 GPS 模块。这个GPS模块有四个引脚+5V,GND,TXD和RXD。它使用串行引脚进行通信,可以轻松连接到 STM32F103C8 的串行端口。
GPS 模块 以 NMEA 格式发送数据(见下图)。NMEA 格式由几个句子组成,其中我们只需要一个句子。这句话从 $GPGGA开始 ,包含了坐标、时间等有用的信息。这个 GPGGA 被称为 全球定位系统固定数据。
下面是一个示例 $GPGGA 字符串及其描述:
$GPGGA,104534.000,7791.0381,N,06727.4434,E,1,08,0.9,510.4,M,43.9,M,,*47
$GPGGA,HHMMSS.SSS,latitude,N,longitude,E,FQ,NOS,HDP,altitude,M,height,M,,checksum data
但在本教程中,我们使用的是TinyGPSPlus GPS 库,它从 NMEA 语句中提取所有必需的信息,我们只需要编写一行简单的代码来获取纬度和经度,我们将在本教程后面看到.
STM32F103C8的引脚
STM32F103C8 (BLUE PILL) USART 串行通信端口如下图所示。这些是蓝色的,具有(PA9-TX1、PA10-RX1、PA2-TX2、PA3-RX2、PB10-TX3、PB11-RX3)。它有三个这样的沟通渠道。