This driver is a stripped down version of the Radiohead 1.45 driver, and covers fewer radios. Threading and an event queue have been added to make the ISR's more stable across architectures. Specifically The STM32L4 parts

Dependents:   Threaded_LoRa_Modem

Revision:
3:6ffa8c82a713
Parent:
1:dfeb5e8b199a
--- a/RH_RF95.h	Sat May 29 19:02:55 2021 +0000
+++ b/RH_RF95.h	Mon May 31 02:49:19 2021 +0000
@@ -11,7 +11,7 @@
 
 #ifndef RH_RF95_h
 #define RH_RF95_h
-
+#include "PinNames.h"
 #include <RHSPIDriver.h>
 
 // This is the maximum number of interrupts the driver can support
@@ -550,7 +550,7 @@
     /// \return true if sleep mode was successfully entered.
     virtual bool    sleep();
     
-        void           handleInterrupt();
+    void           handleInterrupt();
 
 protected:
     /// This is a low level function to handle the interrupts for one instance of RH_RF95.
@@ -565,6 +565,7 @@
     void clearRxBuf();
 
 private:
+//	static void startISR();
     /// Low level interrupt service routine for device connected to interrupt 0
     static void         isr0();
 
@@ -583,6 +584,9 @@
 #if (RH_PLATFORM == RH_PLATFORM_MBED)
     /// The configured interrupt pin connected to this instance
     InterruptIn _interruptPin;
+    Thread _isrThread;
+    static void manageISR();
+//    bool doISR;
 #else
     /// The configured interrupt pin connected to this instance
     uint8_t             _interruptPin;