使用adruino读入传感器数据(GPS原始数据)并将其存储在SD卡上

时间:2016-07-15 09:17:53

标签: arduino nmea

我想从ublox芯片的串口读取GPS数据。我不仅想读NMEA句子,还想读原始数据(像MEASX,RAWX,SFRBX这样的消息)。如果我只是将我的串口与PC连接并使用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
        }
    }

}

任何想法如何简单地逐行读取文件。我认为问题是我不知道如何处理原始数据 - 如何读取数据?

最佳

picture1 picture2

1 个答案:

答案 0 :(得分:3)

您无需检查CR,GPS设备会以块的形式发送数据,因此如果完成了一个块,则通信将关闭,并且available() - 语句将不再为真。

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())
    {
        ...
    }

    ...
}