diff --git a/examples/X_NUCLEO_GNSS1A1_HelloWorld_UART/X_NUCLEO_GNSS1A1_HelloWorld_UART.ino b/examples/X_NUCLEO_GNSS1A1_HelloWorld_UART/X_NUCLEO_GNSS1A1_HelloWorld_UART.ino index 2756ee3..27c2e11 100644 --- a/examples/X_NUCLEO_GNSS1A1_HelloWorld_UART/X_NUCLEO_GNSS1A1_HelloWorld_UART.ino +++ b/examples/X_NUCLEO_GNSS1A1_HelloWorld_UART/X_NUCLEO_GNSS1A1_HelloWorld_UART.ino @@ -57,7 +57,7 @@ uint32_t stime = 0; int waitType = 0; #ifdef ARDUINO_ARCH_STM32 -HardwareSerial Serial1(PA10, PA9); +Uart Serial1(PA10, PA9); #endif #define MSG_SZ 256 diff --git a/examples/X_NUCLEO_GNSS1A1_MicroNMEA_I2C/X_NUCLEO_GNSS1A1_MicroNMEA_I2C.ino b/examples/X_NUCLEO_GNSS1A1_MicroNMEA_I2C/X_NUCLEO_GNSS1A1_MicroNMEA_I2C.ino index 8564317..4182402 100644 --- a/examples/X_NUCLEO_GNSS1A1_MicroNMEA_I2C/X_NUCLEO_GNSS1A1_MicroNMEA_I2C.ino +++ b/examples/X_NUCLEO_GNSS1A1_MicroNMEA_I2C/X_NUCLEO_GNSS1A1_MicroNMEA_I2C.ino @@ -61,7 +61,11 @@ #endif // Refer to Stream devices by use +#if defined(STM32_CORE_VERSION) && (STM32_CORE_VERSION > 0x020C0000) +Uart& console = Serial; +#else HardwareSerial& console = Serial; +#endif TwoWire& gps = DEV_I2C; //I2C read data structures diff --git a/examples/X_NUCLEO_GNSS1A1_MicroNMEA_UART/X_NUCLEO_GNSS1A1_MicroNMEA_UART.ino b/examples/X_NUCLEO_GNSS1A1_MicroNMEA_UART/X_NUCLEO_GNSS1A1_MicroNMEA_UART.ino index a29c436..1dcb751 100644 --- a/examples/X_NUCLEO_GNSS1A1_MicroNMEA_UART/X_NUCLEO_GNSS1A1_MicroNMEA_UART.ino +++ b/examples/X_NUCLEO_GNSS1A1_MicroNMEA_UART/X_NUCLEO_GNSS1A1_MicroNMEA_UART.ino @@ -42,15 +42,22 @@ #include //Define Serial1 for STM32 Nucleo boards -#ifdef ARDUINO_ARCH_STM32 +#if defined(STM32_CORE_VERSION) && (STM32_CORE_VERSION > 0x020C0000) +Uart Serial1(PA10, PA9); +#elif defined(ARDUINO_ARCH_STM32) HardwareSerial Serial1(PA10, PA9); #endif #define RESET_PIN 7 // Refer to serial devices by use +#if defined(STM32_CORE_VERSION) && (STM32_CORE_VERSION > 0x020C0000) +Uart& console = Serial; +Uart& gps = Serial1; +#else HardwareSerial& console = Serial; HardwareSerial& gps = Serial1; +#endif //MicroNMEA library structures char nmeaBuffer[100]; diff --git a/examples/X_NUCLEO_GNSS1A1_VirtualCOMPort/X_NUCLEO_GNSS1A1_VirtualCOMPort.ino b/examples/X_NUCLEO_GNSS1A1_VirtualCOMPort/X_NUCLEO_GNSS1A1_VirtualCOMPort.ino index ba996f0..f681fc4 100644 --- a/examples/X_NUCLEO_GNSS1A1_VirtualCOMPort/X_NUCLEO_GNSS1A1_VirtualCOMPort.ino +++ b/examples/X_NUCLEO_GNSS1A1_VirtualCOMPort/X_NUCLEO_GNSS1A1_VirtualCOMPort.ino @@ -47,7 +47,9 @@ volatile uint8_t fromGNSS[16]; volatile unsigned long idxPC = 0; volatile unsigned long idxGNSS = 0; -#ifdef ARDUINO_ARCH_STM32 +#if defined(STM32_CORE_VERSION) && (STM32_CORE_VERSION > 0x020C0000) +Uart Serial1(PA10, PA9); +#elif defined(ARDUINO_ARCH_STM32) HardwareSerial Serial1(PA10, PA9); #endif diff --git a/src/NMEA_parser.h b/src/NMEA_parser.h index e716917..a246a82 100644 --- a/src/NMEA_parser.h +++ b/src/NMEA_parser.h @@ -272,7 +272,7 @@ typedef struct typedef struct { UTC_Info_t utc; /**< UTC Time */ - uint8_t status; /**< “A” = valid, “V” = Warning */ + uint8_t status; /**< A = valid, V = Warning */ Coords_t xyz; /**< Coords data member */ float32_t speed; /**< Speed over ground in knots */ float32_t trackgood; /**< Course made good */ diff --git a/src/teseo.h b/src/teseo.h index 6c38741..d6f18f4 100644 --- a/src/teseo.h +++ b/src/teseo.h @@ -54,6 +54,11 @@ extern "C" { /* Includes ------------------------------------------------------------------*/ #include +/* Core compatibility --------------------------------------------------------*/ +#if defined(STM32_CORE_VERSION) && (STM32_CORE_VERSION <= 0x020C0000) +#define Uart HardwareSerial +#define pin_size_t uint32_t +#endif /* Exported defines ----------------------------------------------------------*/ /** diff --git a/src/teseo_liv3f_class.h b/src/teseo_liv3f_class.h index b302c5b..6dd9f06 100644 --- a/src/teseo_liv3f_class.h +++ b/src/teseo_liv3f_class.h @@ -93,7 +93,7 @@ class TeseoLIV3F public: - TeseoLIV3F(TwoWire *i2c, int resetPin, int enablePin) : dev_i2c(i2c), pinRes(resetPin), pinEn(enablePin) + TeseoLIV3F(TwoWire *i2c, pin_size_t resetPin, pin_size_t enablePin) : dev_i2c(i2c), pinRes(resetPin), pinEn(enablePin) { pinMode(pinRes, OUTPUT); pinMode(pinEn, OUTPUT); @@ -104,7 +104,7 @@ class TeseoLIV3F commandDone = 1; } - TeseoLIV3F(HardwareSerial *uart, int resetPin, int enablePin) : dev_uart(uart), pinRes(resetPin), pinEn(enablePin) + TeseoLIV3F(Uart *uart, pin_size_t resetPin, pin_size_t enablePin) : dev_uart(uart), pinRes(resetPin), pinEn(enablePin) { pinMode(pinRes, OUTPUT); pinMode(pinEn, OUTPUT); @@ -578,9 +578,9 @@ class TeseoLIV3F int useI2C = DEFAULT_BUS; TwoWire *dev_i2c = DEFAULT_I2C; - HardwareSerial *dev_uart = DEFAULT_UART; - int pinRes; - int pinEn; + Uart *dev_uart = DEFAULT_UART; + pin_size_t pinRes; + pin_size_t pinEn; int commandDone; char compareMessage[MAX_RESPONSE_LENGTH]; I2CHandler i2ch;