|
11 | 11 | #elif defined(ESP32) |
12 | 12 | #include <SPIFFS.h> |
13 | 13 | #endif |
| 14 | +#if defined(KISS_UART_RX) && defined(KISS_UART_TX) |
| 15 | + #include <HardwareSerial.h> |
| 16 | +#endif |
14 | 17 |
|
15 | 18 | #define NOISE_FLOOR_CALIB_INTERVAL_MS 2000 |
16 | 19 | #define AGC_RESET_INTERVAL_MS 30000 |
@@ -91,14 +94,35 @@ void setup() { |
91 | 94 | rng.begin(radio_get_rng_seed()); |
92 | 95 | loadOrCreateIdentity(); |
93 | 96 |
|
| 97 | + sensors.begin(); |
| 98 | + |
| 99 | +#if defined(KISS_UART_RX) && defined(KISS_UART_TX) |
| 100 | +#if defined(ESP32) |
| 101 | + Serial1.setPins(KISS_UART_RX, KISS_UART_TX); |
| 102 | + Serial1.begin(115200); |
| 103 | +#elif defined(NRF52_PLATFORM) |
| 104 | + ((Uart *)&Serial1)->setPins(KISS_UART_RX, KISS_UART_TX); |
| 105 | + Serial1.begin(115200); |
| 106 | +#elif defined(RP2040_PLATFORM) |
| 107 | + ((SerialUART *)&Serial1)->setRX(KISS_UART_RX); |
| 108 | + ((SerialUART *)&Serial1)->setTX(KISS_UART_TX); |
| 109 | + Serial1.begin(115200); |
| 110 | +#elif defined(STM32_PLATFORM) |
| 111 | + ((HardwareSerial *)&Serial1)->setRx(KISS_UART_RX); |
| 112 | + ((HardwareSerial *)&Serial1)->setTx(KISS_UART_TX); |
| 113 | + Serial1.begin(115200); |
| 114 | +#else |
| 115 | + #error "KISS UART not supported on this platform" |
| 116 | +#endif |
| 117 | + modem = new KissModem(Serial1, identity, rng, radio_driver, board, sensors); |
| 118 | +#else |
94 | 119 | Serial.begin(115200); |
95 | 120 | uint32_t start = millis(); |
96 | 121 | while (!Serial && millis() - start < 3000) delay(10); |
97 | 122 | delay(100); |
98 | | - |
99 | | - sensors.begin(); |
100 | | - |
101 | 123 | modem = new KissModem(Serial, identity, rng, radio_driver, board, sensors); |
| 124 | +#endif |
| 125 | + |
102 | 126 | modem->setRadioCallback(onSetRadio); |
103 | 127 | modem->setTxPowerCallback(onSetTxPower); |
104 | 128 | modem->setGetCurrentRssiCallback(onGetCurrentRssi); |
|
0 commit comments