如何用STM32读取Adafruit GPS数据?
How to read Adafruit GPS Data with STM32?
我正在使用 STM32 Nucleo-F334R8 board and a Ultimate GPS Breakout V3 from Adafruit。
我想做的是使用串行通信在我的计算机上使用 Putty 读取 GPS 数据。
最后,我想在我的 F334R8 板上获取 GPS 数据,然后将其发送到 RaspberryPi 3 with the serial communication. I'm having a lot of trouble so far, I'm coding on Mbed Compiler Online,每次我想找到解决方案时,情况都会变得更糟。
有人能给我解决方案吗?
编辑:
好的谢谢!我还试图通过串行通信将接收到的数据发送到 Raspberry Pi 3。我已将 D15 和 D14 连接到 Raspberry 的 TX 和 RX,但是当我使用时:
#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 控制台上没有收到任何信息。
有人可以帮忙吗?
这是一个读取 Adafruit 板上 GPS 芯片数据的示例应用程序:https://os.mbed.com/users/embeddedartists/code/app_gps/
通过引脚 D8/D2 上的 UART 将 GPS 芯片连接到 F334R8 板上(D0/D1 不适用于该板上的 UART,因为它用于与计算机通信)。然后将main.cpp
中的第5行改成:
static MTK3339 gps(D8, D2);
我正在使用 STM32 Nucleo-F334R8 board and a Ultimate GPS Breakout V3 from Adafruit。
我想做的是使用串行通信在我的计算机上使用 Putty 读取 GPS 数据。
最后,我想在我的 F334R8 板上获取 GPS 数据,然后将其发送到 RaspberryPi 3 with the serial communication. I'm having a lot of trouble so far, I'm coding on Mbed Compiler Online,每次我想找到解决方案时,情况都会变得更糟。
有人能给我解决方案吗?
编辑: 好的谢谢!我还试图通过串行通信将接收到的数据发送到 Raspberry Pi 3。我已将 D15 和 D14 连接到 Raspberry 的 TX 和 RX,但是当我使用时:
#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 控制台上没有收到任何信息。 有人可以帮忙吗?
这是一个读取 Adafruit 板上 GPS 芯片数据的示例应用程序:https://os.mbed.com/users/embeddedartists/code/app_gps/
通过引脚 D8/D2 上的 UART 将 GPS 芯片连接到 F334R8 板上(D0/D1 不适用于该板上的 UART,因为它用于与计算机通信)。然后将main.cpp
中的第5行改成:
static MTK3339 gps(D8, D2);