Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed-STM32F103C8T6 mbed nRF24L01P
Fork of STM32F103C8T6_Hello by
Revision 8:c3006edbb507, committed 2016-07-29
- Comitter:
- cfb95
- Date:
- Fri Jul 29 14:45:55 2016 +0000
- Parent:
- 7:accb2c83a007
- Commit message:
- Example based on HUDAKZ example + OWEN EDWARDS example to test nRF24L01P with STM32F103C8T6.
Changed in this revision
--- a/main.cpp Tue Jul 05 18:57:42 2016 +0000
+++ b/main.cpp Fri Jul 29 14:45:55 2016 +0000
@@ -1,18 +1,92 @@
#include "stm32f103c8t6.h"
#include "mbed.h"
+#include "nRF24L01P.h"
+
+// The nRF24L01+ supports transfers from 1 to 32 bytes, but Sparkfun's
+// "Nordic Serial Interface Board" (http://www.sparkfun.com/products/9019)
+// only handles 4 byte transfers in the ATMega code.
+#define TRANSFER_SIZE 4
+
+
+#define LED2 PB_15
+
+#define CSN PC_14
+#define CE PC_15
+#define IRQ PB_1
+
+#define LED_ON 0
+#define LED_OFF 1
Serial pc(PA_2, PA_3);
-DigitalOut myled(LED1);
+DigitalOut myled1(LED1);//tx activity
+DigitalOut myled2(LED2);//rx activity
+
+
+nRF24L01P my_nrf24l01p(SPI_MOSI, SPI_MISO, SPI_SCK, CSN, CE, IRQ); // mosi, miso, sck, csn, ce, irq
int main() {
+ char txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE];
+ int txDataCnt = 0;
+ int rxDataCnt = 0;
confSysClock(); // Configuring system clock
- while(1) {
- // The on-board LED is connected, via a resistor, to +3.3V (not to GND).
- // So to turn the LED on or off we have to set it to 0 or 1 respectively
- myled = 0; // turn the LED on
- wait(0.2); // 200 ms
- myled = 1; // turn the LED off
- wait(1.0); // 1 sec
- pc.printf("Blink\r\n");
+ pc.baud(115200);
+ myled1 = LED_OFF; // turn the LED off
+ myled2 = LED_OFF;
+ pc.printf("STM32+nRF24L01+ Test\r\n");
+
+
+ my_nrf24l01p.powerUp();
+
+ // Display the (default) setup of the nRF24L01+ chip
+ pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() );
+ pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() );
+ pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() );
+ pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() );
+ pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() );
+
+ pc.printf( "Type keys to test transfers:\r\n (transfers are grouped into %d characters)\r\n", TRANSFER_SIZE );
+
+ my_nrf24l01p.setTransferSize( TRANSFER_SIZE );
+
+ my_nrf24l01p.setReceiveMode();
+ my_nrf24l01p.enable();
+
+ while (1) {
+
+ // If we've received anything over the host serial link...
+ if ( pc.readable() ) {
+
+ // ...add it to the transmit buffer
+ txData[txDataCnt++] = pc.getc();
+
+ // If the transmit buffer is full
+ if ( txDataCnt >= sizeof( txData ) ) {
+
+ // Send the transmitbuffer via the nRF24L01+
+ my_nrf24l01p.write( NRF24L01P_PIPE_P0, txData, txDataCnt );
+
+ txDataCnt = 0;
+ }
+
+ // Toggle LED1 (to help debug Host -> nRF24L01+ communication)
+ myled1 = !myled1;
+ }
+
+ // If we've received anything in the nRF24L01+...
+ if ( my_nrf24l01p.readable() ) {
+
+ // ...read the data into the receive buffer
+ rxDataCnt = my_nrf24l01p.read( NRF24L01P_PIPE_P0, rxData, sizeof( rxData ) );
+
+ // Display the receive buffer contents via the host serial link
+ for ( int i = 0; rxDataCnt > 0; rxDataCnt--, i++ ) {
+
+ pc.putc( rxData[i] );
+ }
+
+ // Toggle LED2 (to help debug nRF24L01+ -> Host communication)
+ myled2 = !myled2;
+ }
}
+
}
--- a/mbed-STM32F103C8T6.lib Tue Jul 05 18:57:42 2016 +0000 +++ b/mbed-STM32F103C8T6.lib Fri Jul 29 14:45:55 2016 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/hudakz/code/mbed-STM32F103C8T6/#a92af4b1ffe1 +http://mbed.org/users/hudakz/code/mbed-STM32F103C8T6/#306609fe9dc8
--- a/mbed.bld Tue Jul 05 18:57:42 2016 +0000 +++ b/mbed.bld Fri Jul 29 14:45:55 2016 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/6c34061e7c34 \ No newline at end of file +http://mbed.org/users/mbed_official/code/mbed/builds/f9eeca106725 \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nRF24L01P.lib Fri Jul 29 14:45:55 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/Owen/code/nRF24L01P/#8ae48233b4e4
