У меня это GPS-приемник.
Я использую это руководство; стр. 225.
Чтобы отправить GPS в режиме энергосбережения, следуйте данному руководству ; Я написал:
void send_GPS_to_PowerDown() {
ubxPacket ubxp = {};
ubxp.cls = 0x0A;
ubxp.id = 0x04;
ubxp.len = 0;
ubxp.startingSpot = 40;
byte incomingByte;
uint8_t ackPacket [9];
uint32_t CK_A=0, CK_B=0;
ackPacket[0] = 0xB5; // header
ackPacket[1] = 0x62; // header
ackPacket[2] = 0x06; // class
ackPacket[3] = 0x11; // id
ackPacket[4] = 0x02; // length
ackPacket[5] = 0x00;
ackPacket[6] = 0x01; // power save
ackPacket[7] = 0; // CK_A
ackPacket[8] = 0; // CK_B
for(int i=0; i<9; i++){
CK_A = CK_A + ackPacket[i];
CK_B = CK_B + CK_A;
CK_A = CK_A & 0xff;
CK_B = CK_B & 0xff;
Serial.println("CK_A= " + String(CK_A));
Serial.println("CK_B= " + String(CK_B));
}
ackPacket[7] = CK_A; // CK_A
ackPacket[8] = CK_B; // CK_B
for(int i =0; i<9; i++) {
SerialGPS.print(ackPacket[i], HEX); // initialized with 9600 Baud
Serial.print(ackPacket[i], HEX);
Serial.print(", ");
}
while (SerialGPS.available() > 0) {
// read the incoming byte:
incomingByte = SerialGPS.read();
// say what you got:
Serial.print("I received: ");
Serial.println(incomingByte, DEC);
}
}
Но ни GPS go не находится в режиме энергосбережения, ни я не вижу ответа от GPS в моем сериале. Что не так? Спасибо.