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

标签 arduino nmea

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

}

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

最佳

picture1 picture2

最佳答案

您不需要检查 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/

相关文章:

c - Arduino 代码保存后无法编译

java - 使用 PATTERN MATCHER 解析 NMEA 数据

java - 不能影响始终为 null 的简单 Double[] 表的值

c++ - arm-none-eabi-g++:没有这样的文件或目录

c++ - header 中的编码与 cpp 中的编码 : different behaviour

ubuntu - 在 ubuntu 12.04 中无法连接到 Bluetooth Mate

c - 如何使用微 Controller 检测键盘矩阵中开关的释放?

java - 向服务器发送 GPS 数据不起作用?

c# - C# .net cf 中的 nmea 校验和

c++ - 使用类似策略模式的文件解析器 - 如何获得结果?