先日はありがとうございました。
SCP1000とGPSモジュール(GT-720F)を使用してGPS、温度、気圧のデータを同時に取得しようと以下のようなプロブラムを実行しました。
- コード: 全て選択
#include "mbed.h"
#include "SCP1000.h"
DigitalIn mysw(p29);
LocalFileSystem local("local");
int main() {
SCP1000 scp1000(p5,p6,p7,p8);
scp1000.setOperationMode(SCP1000::HIGH_SPEED_MODE);
Serial gps(p9,p10);
gps.baud(9600);
FILE*fp=fopen("/local/local.txt","a");
while(!mysw) {
float temperature = scp1000.readTemperature();
float pressure = scp1000.readPressure();
char GPS = gps.getc();
printf("%c",GPS);
fprintf(fp,"%4.2f %3.1f \r\n",temperature,pressure);
}
fclose(fp);
}
その結果、GPSモジュールのみが(下のような)適切でないデータを取得しました。(SCP1000は期待した値をとりました。)
- コード: 全て選択
$GPRM,0,$GPRM0,,$GPRM00
$GPRM.0,0$GPRM06
$GPRM4G,$GPRM4,,$GPRM0
P$GPRM001K$GPRM020$GPRM.V,$GPRM,02$GPRM0,4$GPRM0.
$GPRMC,7.$GPRM05$$GPRMA0,$GPRM0,,$GPRM,M60$GPR0E9,$GPRM00P$GPRM3G0$GPRM.,,$GPRM0G2$GPRM0,20$GPRM.60$GPRM01,$GPRM709$GPRM0,,$GPRM00V$GPRM0.,,$GPRM0,0$GPRM01P$GPRM7P,$GPRM0,5$GPRM
同じ回路にGPSデータのみを取得するプログラムを試したところ、正常な値が取れたので、SCP1000がGPSモジュールに影響していると思うのですが、
GND、VOUT以外は同じピンを使用していないのでどこを直せばいいのかわかりません。
GPSの電源を乾電池にしても結果が同じだったのですが、回路が問題ではないのでしょうか。
また、取得したGPSデータを見ると、正常なデータの一部が飛び飛びで表示されているようで、
mbedとGPSモジュールの通信速度が変わっているのかもしれないとも思いましたが、何が原因なのでしょうか。
SCP1000のオペレーションモードのような気もするのですが、なぜピンの違うGSPモジュールに影響しているのでしょうか。
改善策を頂けるとありがたいです。
よろしくお願いします。