1.环境配置: 参考Arduino IDE上手教程完成IDE安装, 并根据实际使用的开发板安装对应的板管理, 与需要的驱动库。
2.使用到的驱动库:
3.使用到的硬件产品:
C:\Users\{username}\Documents\Arduino
/Users/{username}/Documents/Arduino
/home/{username}/Arduino
G18(RX)
,G17(TX)
。Module GPS v2.0还支持通过底部的DIP拨码开关切换引脚的连接, 可根据实际需求进行调整。UnitGPSExample
案例程序, 修改对应的UART初始化引脚IO。基于M5Unified和M5GFX为该案例程序添加基础的坐标显示功能。/* *SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD * *SPDX-License-Identifier: MIT */ #include "M5Unified.h"#include "M5GFX.h"#include "MultipleSatellite.h" static const int RXPin = 18, TXPin = 17;static const uint32_t GPSBaud = 115200;MultipleSatellite gps(Serial1, GPSBaud, SERIAL_8N1, RXPin, TXPin); void displayInfo(); void setup(){ M5.begin(); Serial.begin(115200); gps.begin(); gps.setSystemBootMode(BOOT_FACTORY_START); Serial.println(F("DeviceExample.ino")); Serial.println(F("A simple demonstration of TinyGPSPlus with an attached GPS module")); Serial.print(F("Testing TinyGPSPlus library v. ")); Serial.println(TinyGPSPlus::libraryVersion()); Serial.println(F("by Mikal Hart")); Serial.println(); String version = gps.getGNSSVersion(); Serial.printf("GNSS SW=%s\r\n", version.c_str()); delay(1000); // Set satellite mode gps.setSatelliteMode(SATELLITE_MODE_GPS); M5.Display.setFont(&fonts::FreeMonoBold12pt7b);}void loop(){ // Update data gps.updateGPS(); displayInfo(); delay(10);} void displayInfo(){ Serial.print(F("Location: ")); Serial.printf("satellites:%d\n", gps.satellites.value()); if (gps.location.isUpdated()) { Serial.print(gps.location.lat(), 6); Serial.print(F(",")); Serial.print(gps.location.lng(), 6); Serial.print(F("\n")); M5.Display.fillRect(0, 0, 320, 60, BLACK); M5.Display.setCursor(0, 0); M5.Display.printf("Location: \nLat: %f\nlng: %f\n", gps.location.lat(), gps.location.lng()); } else { M5.Display.fillRect(0, 0, 320, 60, BLACK); M5.Display.setCursor(0, 0); M5.Display.print("Location: \n"); M5.Display.print("Lat: ---------\n"); M5.Display.print("lng: ---------\n"); Serial.print(F("INVALID\n")); } Serial.print(F(" Date/Time: ")); if (gps.date.isUpdated()) { Serial.print(gps.date.month()); Serial.print(F("/")); Serial.print(gps.date.day()); Serial.print(F("/")); Serial.print(gps.date.year()); M5.Display.fillRect(0, 100, 320, 60, BLACK); M5.Display.setCursor(0, 100); M5.Display.printf("Date/Time: %d/%d/%d\n", gps.date.month(), gps.date.day(), gps.date.year()); } else { Serial.print(F("INVALID")); } Serial.print(F(" ")); if (gps.time.isUpdated()) { if (gps.time.hour() < 10) Serial.print(F("0")); Serial.print(gps.time.hour()); Serial.print(F(":")); if (gps.time.minute() < 10) Serial.print(F("0")); Serial.print(gps.time.minute()); Serial.print(F(":")); if (gps.time.second() < 10) Serial.print(F("0")); Serial.print(gps.time.second()); Serial.print(F(".")); if (gps.time.centisecond() < 10) Serial.print(F("0")); Serial.print(gps.time.centisecond()); M5.Display.fillRect(0, 160, 320, 60, BLACK); M5.Display.setCursor(0, 160); M5.Display.printf("Time: %d:%d:%d.%d\n", gps.time.hour(), gps.time.minute(), gps.time.second(), gps.time.centisecond()); } else { Serial.print(F("INVALID")); } Serial.println(); delay(1000);}
1.下载模式: 不同设备进行程序烧录前需要下载模式, 不同的主控设备该步骤可能有所不同。详情可参考Arduino IDE上手教程页面底部的设备程序下载教程列表, 查看具体的操作方式。
CoreS3长按复位按键(大约2秒)直到内部绿色LED灯亮起,便可松开,此时设备已进入下载模式,等待烧录。
连接配套的外置天线, 将天线放置在窗边或是户外空旷区域, 等待设备成功搜索卫星与获取坐标。