Как читать данные 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);
Другие вопросы по тегам