Slave (receiver) example of using nRF24L01 with STM32F407VET6.

Dependencies:   mbed RF24

Slave (receiver) example of using nRF24L01 with STM32F407VET6 black boards.

/media/uploads/hudakz/nrf24l01_2rY1GYr.png


Connect (plug in) the nRF24L01 module to the NRF24L01 connector located on the STM32F407VET6 board as follows:

nRF24L01STM32F407VET6
Vcc+3.3V
GNDGND
MOSIPB_5 (SPI1 MOSI)
MISOPB_4 (SPI1 MISO)
SCKPB_3 (SPI1 SCK)
CSNPB_7 (CS)
CEPB_6 (CE)
Revision:
0:818ff5c70049
Child:
1:9bafc8faffdf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Jan 23 07:46:08 2019 +0000
@@ -0,0 +1,27 @@
+#include "mbed.h"
+#include "RF24.h"
+
+const uint64_t  ADDRESS = 0xF0F0F0F0F0F0F001L;
+
+DigitalOut      led(PA_6);
+RF24            radio(PB_5, PB_4, PB_3, PB_7, PB_6);    // mosi, miso, sck, csn, ce, (irq=Not Connected)
+uint8_t         payload;
+
+int main(void)
+{
+   // Initialize nRF24L01
+    radio.begin();
+    radio.setPALevel(RF24_PA_LOW);
+    radio.setRetries(5, 15);
+    radio.setPayloadSize(1);
+    radio.setAutoAck(true);
+    radio.openReadingPipe(0, ADDRESS);  // use pipe 0 of this slave to receive messsages and send back auto acknowledge
+    radio.startListening();
+
+    while (1) {
+        if (radio.available()) {
+            radio.read(&payload, 1);    // read radio message and send acknowledge back to the master
+            led = payload;
+        }
+    }
+}