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
Gps Arduino替换代码_Gps_Arduino - Fatal编程技术网

Gps Arduino替换代码

Gps Arduino替换代码,gps,arduino,Gps,Arduino,我对Arduino和C编程非常陌生 我正在制作一个GPS speedo,我正在尝试读取一些串行数据,存储子字符串中的值,并通过串行数据将其回显 目前,我在存储子字符串时遇到问题 我已经能够在之间获得一些数据。 但数据并不是这样来的。这是一个NMEA数据流,我想要的数据介于,N,和,K,之间 所以我一直试图用0){ char c=Serial.read(); c、 替换(,N,,); 如果(c==''是我们的结束字符 安装[stringPos]=c; stringPos++; } 否则{ //找到

我对Arduino和C编程非常陌生

我正在制作一个GPS speedo,我正在尝试读取一些串行数据,存储子字符串中的值,并通过串行数据将其回显

目前,我在存储子字符串时遇到问题

我已经能够在
之间获得一些数据。 但数据并不是这样来的。这是一个NMEA数据流,我想要的数据介于
,N,
,K,
之间

所以我一直试图用
,N,

就是不能让它工作。我得到
错误:请求'c'中的成员'replace',这是非类类型'char'

这是我到目前为止的代码

intindata=0;
int scrubdata=0;
char inString[32];
int-stringPos=0;
布尔startRead=false;//她在读书吗?
无效设置(){
Serial.begin(4800);
}
void循环(){
字符串pageValue=readPage();
串行打印(页值);
}
字符串读取页(){
//阅读页面,并捕获并返回“”之间的所有内容
stringPos=0;
memset(&inString,0,32);//清除inString内存
while(true){
如果(Serial.available()>0){
char c=Serial.read();
c、 替换(,N,,);
如果(c==''是我们的结束字符
安装[stringPos]=c;
stringPos++;
}
否则{
//找到我们需要的了!我们现在可以断开连接了
startRead=false;
返回指令;
}
}
}
}
}
默认情况下: 返回一个
int
如果必须以这种方式处理数据,请尝试使用以下命令将其强制转换为
char

charc=(char)Serial.read();
另一种方法是: 将是使用查找开始字符串(丢弃不需要的数据),然后读取数据,直到遇到结束字符“,K,”为止

像这样的东西会很好地工作:

char-inData[64];//根据您的数据大小进行调整
Serial.setTimeout(2000);//如果需要,默认设置为1000毫秒
Serial.find(,N,);//数据的开始
int bRead=Serial.readbytesintil(,K,,inData,64);//读取到数据结束
inData[bRead]=0x00;//如果将其用作字符串,则终止为零
返回inData;

GPS speedo!??听起来一点也不舒服!