Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 使用adruino读取传感器数据(GPS原始数据),并将其存储在SD卡上_Arduino_Nmea - Fatal编程技术网

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

Arduino 使用adruino读取传感器数据(GPS原始数据),并将其存储在SD卡上,arduino,nmea,Arduino,Nmea,我想从ublox芯片的串行端口读取GPS数据。我不仅想阅读NMEA中的句子,还想阅读原始数据(如MEASX、RAWX、SFRBX等消息)。如果我只需将串行端口与pc连接,并使用RealTerm(win)读取数据,它就可以正常工作。但是,如果我尝试用adruino读入数据,它会读入NMEA语句,但它无法正确读入原始数据 以下是我使用的代码: String inData; void setup() { Serial.begin(38400); } void loop() { wh

我想从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
        }
    }

}
任何关于如何简单地逐行读取文件的想法。我认为问题在于我不知道如何处理原始数据——如何读取这些数据

最好的


您不需要检查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())
    {
        ...
    }

    ...
}
#包括
软件串行gps(4,3);//接收,发送
...
无效设置()
{
开始(9600);
...
}
void循环()
{
if(gps.available())
{
...
}
...
}