以前も質問させていただいたのですが、GPSモジュールについてまた行き詰ったところがあったので質問させていただきます。
下のように緯度、経度のみを表示するプログラムを書き、実行したところ、一度目のデータは期待した通りの結果が返ってきたのですが、
その後データが表示されません。iの値をそろえるために書いた
- コード: 全て選択
if(strncmp(GPS,"$GPRMC",6) == 0){...}
の部分を消去するとデータが表示されるので(ずれている値です)
この部分が影響しているのだと思うのですが、どのように修正すればよいでしょうか
よろしくお願いします。
- コード: 全て選択
#include "mbed.h"
DigitalIn mysw(p29);
Serial gps(p9,p10);
LocalFileSystem local("local");
int main(){
gps.baud(38400);
FILE*fp=fopen("/local/local.txt","a");
char GPS[377]; //377はGPSモジュールで取得に成功した時の一回分の位置情報の文字数です
while(1){
for(int i = 0;i<377; i++){
GPS[i] = gps.getc();
}
if(strncmp(GPS,"$GPRMC",6) == 0){
printf("ido:%c%c%c%c%c%c%c%c%c\nkeido:%c%c%c%c%c%c%c%c%c%c\n",
GPS[20],GPS[21],GPS[22],GPS[23],GPS[24],GPS[25],GPS[26],GPS[27],GPS[28],
GPS[32],GPS[33],GPS[34],GPS[35],GPS[36],GPS[37],GPS[38],GPS[39],GPS[40],GPS[41]);
}
}
}