Как читать данные Adafruit GPS с помощью STM32?
Я использую плату STM32 Nucleo-F334R8 и Ultimate GPS Breakout V3 от Adafruit.
То, что я пытаюсь сделать, это прочитать данные GPS с Putty на моем компьютере, используя последовательную связь.
В конце я хочу получить данные GPS на моей плате F334R8, а затем отправить их на RaspberryPi 3 с последовательной связью. До сих пор у меня много проблем, я пишу код на Mbed Compiler Online, и каждый раз, когда я чувствую, что могу найти решение, становится все хуже.
У кого-нибудь есть решение для меня?
РЕДАКТИРОВАТЬ: Хорошо, спасибо! Я также пытаюсь отправить полученные данные на Raspberry Pi 3 через последовательную связь. Я подключил D15 и D14 к TX и RX Raspberry, но когда я использую:
#include "mbed.h"
#include "MTK3339.h"
static int waitData = 0;
static MTK3339 gps(D8, D2);
static float latitude = 0;
static float longitude = 0;
Serial rasp(D15, D14); // D15 = RX, D14 = TX
static void dataAvailable() {
waitData |= gps.getAvailableDataType();
}
int main(void) {
gps.start(&dataAvailable, (MTK3339::NmeaGga|MTK3339::NmeaVtg));
while(1) {
while(waitData == 0);
if ((waitData & MTK3339::NmeaGga) != 0) {
waitData &= ~(MTK3339::NmeaGga);
latitude = gps.getLatitudeAsDegrees();
longitude = gps.getLongitudeAsDegrees();
//printf("%f,%f\n", gps.getLatitudeAsDegrees(), gps.getLongitudeAsDegrees());
//printf("lat = %f, long = %f",latitude, longitude);
rasp.printf("%f\n", latitude);
}
waitData &= (MTK3339::NmeaGga|MTK3339::NmeaVtg);
}
}
Но это не работает. Я не получаю ничего на консоли Raspberry. Может ли кто-нибудь помочь, пожалуйста?
1 ответ
Вот пример приложения, которое считывает данные чипа GPS, который находится на плате Adafruit: https://os.mbed.com/users/embeddedartists/code/app_gps/
Подключите GPS-чип к плате F334R8 через UART на контактах D8/D2 (D0/D1 не могут использоваться для UART на этой плате, так как он используется для связи с компьютером). Затем измените строку 5 в main.cpp
чтобы:
static MTK3339 gps(D8, D2);