|
20 | 20 | */ |
21 | 21 | //===================================================================================// |
22 | 22 |
|
23 | | -// Version: 1.0.12 |
24 | | -// Last modified: +05:30 15:03:34 PM 28-01-2024, Sunday |
| 23 | +// Version: 1.0.13 |
| 24 | +// Last modified: +05:30 21:11:21 PM 30-06-2024, Sunday |
25 | 25 | // Source: https://github.com/CIRCUITSTATE/CSE_ArduinoRS485 |
26 | 26 |
|
27 | 27 | //===================================================================================// |
|
41 | 41 | // You can expand the software serial support here. |
42 | 42 | // SoftwareSerial is required by boards like Arduino Uno and Nano which don't have a |
43 | 43 | // dedicated secondary hardware serial port. |
44 | | -#define SOFTWARE_SERIAL_REQUIRED defined(__AVR__) || defined(ARDUINO_ARCH_AVR) || defined(ESP8266) |
| 44 | +// #define SOFTWARE_SERIAL_REQUIRED defined(__AVR__) || defined(ARDUINO_ARCH_AVR) || defined(ESP8266) |
| 45 | + |
| 46 | +// #if !defined(HAVE_HWSERIAL1) && !defined(HAVE_HWSERIAL2) && !defined(HAVE_HWSERIAL3) && !defined(HAVE_HWSERIAL4) |
| 47 | +// #define SOFTWARE_SERIAL_REQUIRED 1 |
| 48 | +// #endif |
| 49 | + |
| 50 | +// // Check if the user has defined the macro to control SoftwareSerial inclusion |
| 51 | +// #ifdef DISABLE_SOFTWARE_SERIAL |
| 52 | +// #define SOFTWARE_SERIAL_REQUIRED 0 |
| 53 | +// #else |
| 54 | +// #define SOFTWARE_SERIAL_REQUIRED 1 |
| 55 | +// #endif |
| 56 | + |
| 57 | +// Define default values |
| 58 | +#define _HAVE_HWSERIAL1 |
| 59 | + |
| 60 | +// Check for specific architectures and boards |
| 61 | +#if defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_NANO) |
| 62 | + // Arduino Uno and Nano have only one hardware serial port |
| 63 | + #define _HAVE_HWSERIAL1 |
| 64 | +#elif defined(ARDUINO_AVR_MEGA2560) |
| 65 | + // Arduino Mega has four hardware serial ports |
| 66 | + #define _HAVE_HWSERIAL1 |
| 67 | + #define _HAVE_HWSERIAL2 |
| 68 | + #define _HAVE_HWSERIAL3 |
| 69 | + #define _HAVE_HWSERIAL4 |
| 70 | +#elif defined(ARDUINO_ARCH_ESP32) |
| 71 | + // ESP32 typically has three hardware serial ports |
| 72 | + #define _HAVE_HWSERIAL1 |
| 73 | + #define _HAVE_HWSERIAL2 |
| 74 | + #define _HAVE_HWSERIAL3 |
| 75 | +#endif |
| 76 | + |
| 77 | +// Define a flag to include SoftwareSerial if no additional UARTs are available |
| 78 | +#if !defined(_HAVE_HWSERIAL2) && !defined(_HAVE_HWSERIAL3) && !defined(_HAVE_HWSERIAL4) |
| 79 | + #define SOFTWARE_SERIAL_REQUIRED 1 |
| 80 | +#endif |
45 | 81 |
|
46 | 82 | // The SoftwareSerial is loaded automatically when required. |
47 | | -#if SOFTWARE_SERIAL_REQUIRED |
| 83 | +#ifdef SOFTWARE_SERIAL_REQUIRED |
48 | 84 | #include <SoftwareSerial.h> |
49 | 85 | #endif |
50 | 86 |
|
|
0 commit comments