ViezeVingertjes 6 месяцев назад
Родитель
Сommit
49e7516145
1 измененных файлов с 27 добавлено и 3 удалено
  1. 27 3
      examples/kiss_modem/main.cpp

+ 27 - 3
examples/kiss_modem/main.cpp

@@ -11,6 +11,9 @@
 #elif defined(ESP32)
   #include <SPIFFS.h>
 #endif
+#if defined(KISS_UART_RX) && defined(KISS_UART_TX)
+  #include <HardwareSerial.h>
+#endif
 
 #define NOISE_FLOOR_CALIB_INTERVAL_MS 2000
 #define AGC_RESET_INTERVAL_MS 30000
@@ -91,14 +94,35 @@ void setup() {
   rng.begin(radio_get_rng_seed());
   loadOrCreateIdentity();
 
+  sensors.begin();
+
+#if defined(KISS_UART_RX) && defined(KISS_UART_TX)
+#if defined(ESP32)
+  Serial1.setPins(KISS_UART_RX, KISS_UART_TX);
+  Serial1.begin(115200);
+#elif defined(NRF52_PLATFORM)
+  ((Uart *)&Serial1)->setPins(KISS_UART_RX, KISS_UART_TX);
+  Serial1.begin(115200);
+#elif defined(RP2040_PLATFORM)
+  ((SerialUART *)&Serial1)->setRX(KISS_UART_RX);
+  ((SerialUART *)&Serial1)->setTX(KISS_UART_TX);
+  Serial1.begin(115200);
+#elif defined(STM32_PLATFORM)
+  ((HardwareSerial *)&Serial1)->setRx(KISS_UART_RX);
+  ((HardwareSerial *)&Serial1)->setTx(KISS_UART_TX);
+  Serial1.begin(115200);
+#else
+  #error "KISS UART not supported on this platform"
+#endif
+  modem = new KissModem(Serial1, identity, rng, radio_driver, board, sensors);
+#else
   Serial.begin(115200);
   uint32_t start = millis();
   while (!Serial && millis() - start < 3000) delay(10);
   delay(100);
-
-  sensors.begin();
-
   modem = new KissModem(Serial, identity, rng, radio_driver, board, sensors);
+#endif
+
   modem->setRadioCallback(onSetRadio);
   modem->setTxPowerCallback(onSetTxPower);
   modem->setGetCurrentRssiCallback(onGetCurrentRssi);