GPS Шилд - скетч из примера не компилируется
- Войдите на сайт для отправки комментариев
Чт, 14/05/2015 - 09:47
Господа, доброго всем дня!
Две недели как осваиваю Адруино,
дошло время до GPS модуля и вот засада - скетч из мримера не компилируется, выдает
'BYTE' was not declared in this scope - что за BYTE и как его задекларировать ?
#include <SoftwareSerial.h>
// Constants
#define rxPin 9 //rx pin in gps connection
#define txPin 8 //tx pin in gps connection
// set up the serial port
SoftwareSerial gps = SoftwareSerial(rxPin, txPin);
// variables
byte byteGPS = 0;
int i = 0;
int h = 0;
// Buffers for data input
char inBuffer[300] = "";
char GPS_RMC[100]="";
char GPS_GGA[100]="";
void setup(){
//setup for mySerial port
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
gps.begin(4800);
//setup for Serial port
Serial.begin(19200);
delay(1000);
}
void loop(){
// Read the RMC sentence from GPS
byteGPS = 0;
byteGPS = gps.read();
while(byteGPS != 'R'){
byteGPS = gps.read();
}
GPS_RMC[0]='$';
GPS_RMC[1]='G';
GPS_RMC[2]='P';
GPS_RMC[3]='R';
i = 4;
while(byteGPS != '*'){
byteGPS = gps.read();
inBuffer[i]=byteGPS;
GPS_RMC[i]=byteGPS;
i++;
}
// Read GGA sentence from GPS
byteGPS = 0;
byteGPS = gps.read();
while(byteGPS != 'A'){
byteGPS = gps.read();
}
GPS_GGA[0]='$';
GPS_GGA[1]='G';
GPS_GGA[2]='P';
GPS_GGA[3]='G';
GPS_GGA[4]='G';
GPS_GGA[5]='A';
i = 6;
while(byteGPS != '*'){
byteGPS = gps.read();
inBuffer[i]=byteGPS;
GPS_GGA[i]=byteGPS;
i++;
}
// print the GGA sentence to USB
Serial.print("GGA sentence: ");
h = 0;
while(GPS_GGA[h] != 42){
Serial.print(GPS_GGA[h],BYTE);
h++;
}
Serial.println();
// print the RMC sentence to USB
Serial.print("RMC sentence: ");
h = 0;
while(GPS_RMC[h] != 42){
Serial.print(GPS_RMC[h],BYTE);
h++;
}
Serial.println();
}
Версия IDE и полный текст ошибки? Он не на весь текст ведь ссылается, а на конкретную строку.
две конкретные строки 102 и 111
Вместо Serial.print(GPS_GGA[h],BYTE) поставьте Serial.write(GPS_GGA[h]) и во втором случае тоже.
Благодарю - ошибка исчезла, но теперь в монитор не выводятся данные, копать в сторону вывода данных
Еще вопрос: какая дуина используется. Надо ли софт сериал?
В мониторе может быть абракадабра. В программе предполагалось преобразование символа в число (возврат кода символа). Попробуйте прямое преобразование:
Serial.print(byte(GPS_RMC[h]));Опирался на описания типов:
http://arduino.ru/Reference/Char
http://arduino.ru/Reference/Byte