我正在尝试获取 UBX 消息而不是 NMEA 。我已经提出了我非常肯定不会工作的代码,因为我是完全的菜鸟。
我的 GNSS 接收器是 ZED_fp9 Arduino MEGA 2560 它们通过 I2C 连接`#include <Wire.h> //需要 I2C 到 GPS #include <SparkFun_u-blox_GNSS_Arduino_Library.h> SFE_UBLOX_GNSS myGNSS;
long lastTime = 0; //Simple local timer. Limits amount if I2C traffic to Ublox module.
void setup()
{ Serial.begin(9600); 而(!串行);//等待用户打开终端 Serial.println("SparkFun Ublox Example");
Wire.begin();
if (myGNSS.begin() == false) //Connect to the Ublox module using Wire port
{ Serial.println(F("在默认 I2C 地址未检测到 Ublox GPS。请检查接线。冻结。")); 而(1);}
myGNSS.setI2COutput(COM_TYPE_UBX); //Set the I2C port to output UBX only (turn off NMEA noise)
myGNSS.saveConfiguration(); //Save the current settings to flash and BBR
}
void loop()
{ //每秒查询一次模块。更频繁地这样做只会导致 I2C 流量。//模块只在有新位置可用时才响应
if (millis() - lastTime > 1000)
{
lastTime = millis(); //Update the timer
long latitude = myGNSS.getLatitude();
Serial.print(F("Lat: "));
Serial.print(latitude);
long longitude = myGNSS.getLongitude();
Serial.print(F(" Long: "));
Serial.print(longitude);
Serial.print(F(" (degrees * 10^-7)"));
long altitude = myGNSS.getAltitude();
Serial.print(F(" Alt: "));
Serial.print(altitude);
Serial.print(F(" (mm)"));
byte SIV = myGNSS.getSIV();
Serial.print(F(" SIV: "));
Serial.print(SIV);
myGNSS.getRXMRAWX();
Serial.println();
}
}`
我从上面的串行监视器得到的是纬度、经度、高度和 SIV
但我需要 RXMRAWX 在其他中查看 cpMes 和 PrMes