以下是一个使用GPS通信的示例代码:
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
// 定义GPS模块的串口引脚
#define GPS_RX_PIN 2
#define GPS_TX_PIN 3
// 创建软件串口对象,连接到GPS模块
SoftwareSerial gpsSerial(GPS_RX_PIN, GPS_TX_PIN);
// 创建GPS解析器对象
TinyGPSPlus gps;
void setup() {
Serial.begin(9600); // 初始化串口通信(用于输出数据)
gpsSerial.begin(9600); // 初始化GPS模块的串口通信
// 打印起始信息
Serial.println("GPS Example");
}
void loop() {
while (gpsSerial.available()) {
// 获取并解析接收到的数据
gps.encode(gpsSerial.read());
if (gps.location.isUpdated()) {
// 获取经度和纬度信息
float latitude = gps.location.lat();
float longitude = gps.location.lng();
// 打印经纬度信息
Serial.print("Latitude: ");
Serial.println(latitude, 6);
Serial.print("Longitude: ");
Serial.println(longitude, 6);
}
}
}
这个示例使用了Arduino开发板,并通过软件串口与GPS模块进行通信。它使用TinyGPS++库来解析接收到的NMEA格式的GPS数据,并提取出经度和纬度信息。在loop()函数中,通过判断gps.location.isUpdated()是否为真来检测是否有新的位置更新,然后获取并打印经纬度信息。
请注意,在使用这个示例前,确保正确连接了GPS模块,并根据实际情况调整代码中的引脚号和波特率。
内容由零声教学AI助手提供,问题来源于学员提问




