diff --git a/src/VescUart.cpp b/src/VescUart.cpp index 4d25e18..bbfc759 100644 --- a/src/VescUart.cpp +++ b/src/VescUart.cpp @@ -8,12 +8,12 @@ VescUart::VescUart(uint32_t timeout_ms) : _TIMEOUT(timeout_ms) { nunchuck.upperButton = false; } -void VescUart::setSerialPort(Stream* port) +void VescUart::setSerialPort( SERIAL_PORT_TYPE* port) { serialPort = port; } -void VescUart::setDebugPort(Stream* port) +void VescUart::setDebugPort( SERIAL_PORT_TYPE* port) { debugPort = port; } diff --git a/src/VescUart.h b/src/VescUart.h index dd8492b..3b07653 100644 --- a/src/VescUart.h +++ b/src/VescUart.h @@ -6,6 +6,22 @@ #include "buffer.h" #include "crc.h" +// When using Arduino boards +#if defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_MEGA2560) + #include + #define SERIAL_PORT_TYPE SoftwareSerial +// When using ESP32 or ESP8266 boards +#elif defined(ESP32) || defined(ESP8266) + #define SERIAL_PORT_TYPE HardwareSerial +// When using Teensy 4.0 board +#elif defined( __IMXRT1062__ ) + #define SERIAL_PORT_TYPE HardwareSerialIMXRT +// Other boards can be defined below +#else + #define SERIAL_PORT_TYPE HardwareSerial +#endif + + class VescUart {