我想从 ublox 芯片的串行端口读取 GPS 数据。我不仅想读取 NMEA 句子,还想读取原始数据(MEASX、RAWX、SFRBX 等消息)。如果我只是将串行端口与电脑连接并使用 RealTerm (win) 读取数据,则可以正常工作。但是,如果我尝试使用 adruino 读取数据,它可以很好地读取 NMEA 句子,但无法正确读取原始数据。
这是我使用的代码:
String inData;
void setup() {
Serial.begin(38400);
}
void loop() {
while (Serial.available() > 0)
{
char recieved = Serial.read();
inData += recieved;
// Process message when new line character is recieved
if (recieved == '\n')
{
//Serial.print("Arduino Received: ");
Serial.print(inData);
inData = ""; // Clear recieved buffer
}
}
}
关于如何简单地逐行读取文件的任何想法。我认为问题是我不知道如何处理原始数据 - 如何读取该数据?
最佳
最佳答案
您不需要检查 CR,GPS 设备会分块发送数据,因此如果完成一个 block ,通信将关闭,available() 语句将不再为 true。
if (gps.available())
{
String Buffer = "";
while (gps.available())
{
char GPSRX = gps.read();
Buffer += GPSRX;
//Serial.write(gps.read());
}
Serial.print(Buffer);
}
其中“gps”是 SoftwareSerial 的一个实例:
#include <SoftwareSerial.h>
SoftwareSerial gps(4, 3); // RX, TX
...
void setup()
{
gps.begin(9600);
...
}
void loop()
{
if (gps.available())
{
...
}
...
}
关于arduino - 用arduino读入传感器数据(GPS原始数据)并将其存储在SD卡上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38392350/