Skip to content

Commit 8079612

Browse files
Aymane-STfpistm
andcommitted
feat: support ArduinoCore-API usage
ref: Arduino_Core_STM32#2879 Co-authored-by: Frederic Pillon <frederic.pillon@st.com> Signed-off-by: Aymane Bahssain <aymane.bahssain@st.com>
1 parent 17920e0 commit 8079612

7 files changed

Lines changed: 27 additions & 9 deletions

File tree

examples/X_NUCLEO_GNSS1A1_HelloWorld_UART/X_NUCLEO_GNSS1A1_HelloWorld_UART.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ uint32_t stime = 0;
5757
int waitType = 0;
5858

5959
#ifdef ARDUINO_ARCH_STM32
60-
HardwareSerial Serial1(PA10, PA9);
60+
Uart Serial1(PA10, PA9);
6161
#endif
6262

6363
#define MSG_SZ 256

examples/X_NUCLEO_GNSS1A1_MicroNMEA_I2C/X_NUCLEO_GNSS1A1_MicroNMEA_I2C.ino

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,11 @@
6161
#endif
6262

6363
// Refer to Stream devices by use
64+
#if defined(STM32_CORE_VERSION) && (STM32_CORE_VERSION > 0x020C0000)
65+
Uart& console = Serial;
66+
#else
6467
HardwareSerial& console = Serial;
68+
#endif
6569
TwoWire& gps = DEV_I2C;
6670

6771
//I2C read data structures

examples/X_NUCLEO_GNSS1A1_MicroNMEA_UART/X_NUCLEO_GNSS1A1_MicroNMEA_UART.ino

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,22 @@
4242
#include <MicroNMEA.h>
4343

4444
//Define Serial1 for STM32 Nucleo boards
45-
#ifdef ARDUINO_ARCH_STM32
45+
#if defined(STM32_CORE_VERSION) && (STM32_CORE_VERSION > 0x020C0000)
46+
Uart Serial1(PA10, PA9);
47+
#elif defined(ARDUINO_ARCH_STM32)
4648
HardwareSerial Serial1(PA10, PA9);
4749
#endif
4850

4951
#define RESET_PIN 7
5052

5153
// Refer to serial devices by use
54+
#if defined(STM32_CORE_VERSION) && (STM32_CORE_VERSION > 0x020C0000)
55+
Uart& console = Serial;
56+
Uart& gps = Serial1;
57+
#else
5258
HardwareSerial& console = Serial;
5359
HardwareSerial& gps = Serial1;
60+
#endif
5461

5562
//MicroNMEA library structures
5663
char nmeaBuffer[100];

examples/X_NUCLEO_GNSS1A1_VirtualCOMPort/X_NUCLEO_GNSS1A1_VirtualCOMPort.ino

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ volatile uint8_t fromGNSS[16];
4747
volatile unsigned long idxPC = 0;
4848
volatile unsigned long idxGNSS = 0;
4949

50-
#ifdef ARDUINO_ARCH_STM32
50+
#if defined(STM32_CORE_VERSION) && (STM32_CORE_VERSION > 0x020C0000)
51+
Uart Serial1(PA10, PA9);
52+
#elif defined(ARDUINO_ARCH_STM32)
5153
HardwareSerial Serial1(PA10, PA9);
5254
#endif
5355

src/NMEA_parser.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ typedef struct
272272
typedef struct
273273
{
274274
UTC_Info_t utc; /**< UTC Time */
275-
uint8_t status; /**< “A” = valid, “V” = Warning */
275+
uint8_t status; /**< A = valid, V = Warning */
276276
Coords_t xyz; /**< Coords data member */
277277
float32_t speed; /**< Speed over ground in knots */
278278
float32_t trackgood; /**< Course made good */

src/teseo.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ extern "C" {
5454
/* Includes ------------------------------------------------------------------*/
5555
#include <stdint.h>
5656

57+
/* Core compatibility --------------------------------------------------------*/
58+
#if defined(STM32_CORE_VERSION) && (STM32_CORE_VERSION <= 0x020C0000)
59+
#define Uart HardwareSerial
60+
#define pin_size_t uint32_t
61+
#endif
5762

5863
/* Exported defines ----------------------------------------------------------*/
5964
/**

src/teseo_liv3f_class.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class TeseoLIV3F
9393

9494
public:
9595

96-
TeseoLIV3F(TwoWire *i2c, int resetPin, int enablePin) : dev_i2c(i2c), pinRes(resetPin), pinEn(enablePin)
96+
TeseoLIV3F(TwoWire *i2c, pin_size_t resetPin, pin_size_t enablePin) : dev_i2c(i2c), pinRes(resetPin), pinEn(enablePin)
9797
{
9898
pinMode(pinRes, OUTPUT);
9999
pinMode(pinEn, OUTPUT);
@@ -104,7 +104,7 @@ class TeseoLIV3F
104104
commandDone = 1;
105105
}
106106

107-
TeseoLIV3F(HardwareSerial *uart, int resetPin, int enablePin) : dev_uart(uart), pinRes(resetPin), pinEn(enablePin)
107+
TeseoLIV3F(Uart *uart, pin_size_t resetPin, pin_size_t enablePin) : dev_uart(uart), pinRes(resetPin), pinEn(enablePin)
108108
{
109109
pinMode(pinRes, OUTPUT);
110110
pinMode(pinEn, OUTPUT);
@@ -578,9 +578,9 @@ class TeseoLIV3F
578578

579579
int useI2C = DEFAULT_BUS;
580580
TwoWire *dev_i2c = DEFAULT_I2C;
581-
HardwareSerial *dev_uart = DEFAULT_UART;
582-
int pinRes;
583-
int pinEn;
581+
Uart *dev_uart = DEFAULT_UART;
582+
pin_size_t pinRes;
583+
pin_size_t pinEn;
584584
int commandDone;
585585
char compareMessage[MAX_RESPONSE_LENGTH];
586586
I2CHandler i2ch;

0 commit comments

Comments
 (0)