试图获取我的 GPS 的位置,但序列号收到 0.00000;0.00000

Trying to get the location of my GPS but the serial received 0.00000;0.00000

Arduino代码:

#include <SoftwareSerial.h>
#include <TinyGPS.h>
//long   lat,lon; // create variable for latitude and longitude object
float lat,lon ; // create variable for latitude and longitude object
SoftwareSerial gpsSerial(3,4);//rx,tx

TinyGPS gps; // create gps object
void setup(){
Serial.begin(9600); // connect serial
Serial.println("The GPS Received Signal:");
gpsSerial.begin(9600); // connect gps sensor

}

void loop(){


String latitude = String(lat,6);
String longitude = String(lon,6);
Serial.println(latitude+";"+longitude);
delay(1000);

}

我正在尝试获取我的 GPS 的位置,但串行接收到 0.00000;0.00000 我做错了什么?

你有一个大问题,你从来没有从你的 GPS 对象中获取数据到你的变量中。做法如下:

// create variable for latitude and longitude object
 double lat = 0; // The lib defines it as double!
 double lon = 0; // The lib defines it as double!
unsigned long lastGpsCheck = 0;
const unsigned long delayTime = 1000;
....

void loop(){
// Replaces the CPU stopping delay, does the same without blocking
 if(millis() - lastGpsCheck > delayTime) {
   lat = gps.location.lat(); // This is missing in your code
   lon = gps.location.lon(); // This is missing in your code

   Serial.println( lat,6 );
   Serial.print(";");
   Serial.print(lon,6 );
   lastGpsCkeck = millis();
  }
}

注意:我替换了延迟,早点学会不要在循环、子程序或库中使用延迟。它可以在设置中等待硬件初始化或作为临时调试帮助。
避免转换为字符串 class。始终使用固定字符数组。字符串 class 有错误的内存管理并破坏你的堆(内存泄漏 -> 崩溃),修复 char 数组被编译到闪存。