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: BSP_DISCO_L476VG LCD_DISCO_L476VG mbed nRF24L01P
Fork of nRF24L01P_Hello_World by
main.cpp
00001 #include "mbed.h" 00002 #include "nRF24L01P.h" 00003 00004 Serial pc(USBTX, USBRX); // tx, rx 00005 00006 nRF24L01P my_nrf24l01p(PE_15, PE_14, PE_13, PE_12, PE_10, PE_11); // mosi, miso, sck, csn, ce, irq 00007 00008 DigitalOut myled1(LED1); 00009 DigitalOut myled2(LED2); 00010 00011 int main() { 00012 00013 // The nRF24L01+ supports transfers from 1 to 32 bytes, but Sparkfun's 00014 // "Nordic Serial Interface Board" (http://www.sparkfun.com/products/9019) 00015 // only handles 4 byte transfers in the ATMega code. 00016 #define TRANSFER_SIZE 4 00017 00018 char txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE]; 00019 int txDataCnt = 0; 00020 int rxDataCnt = 0; 00021 00022 my_nrf24l01p.powerUp(); 00023 00024 // Display the (default) setup of the nRF24L01+ chip 00025 pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() ); 00026 pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() ); 00027 pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() ); 00028 pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() ); 00029 pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() ); 00030 00031 pc.printf( "Type keys to test transfers:\r\n (transfers are grouped into %d characters)\r\n", TRANSFER_SIZE ); 00032 00033 my_nrf24l01p.setTransferSize( TRANSFER_SIZE ); 00034 00035 my_nrf24l01p.setReceiveMode(); 00036 my_nrf24l01p.enable(); 00037 00038 while (1) { 00039 00040 // If we've received anything over the host serial link... 00041 if ( pc.readable() ) { 00042 00043 // ...add it to the transmit buffer 00044 txData[txDataCnt++] = pc.getc(); 00045 00046 // If the transmit buffer is full 00047 if ( txDataCnt >= sizeof( txData ) ) { 00048 00049 // Send the transmitbuffer via the nRF24L01+ 00050 my_nrf24l01p.write( NRF24L01P_PIPE_P0, txData, txDataCnt ); 00051 00052 txDataCnt = 0; 00053 } 00054 00055 // Toggle LED1 (to help debug Host -> nRF24L01+ communication) 00056 myled1 = !myled1; 00057 } 00058 00059 // If we've received anything in the nRF24L01+... 00060 if ( my_nrf24l01p.readable() ) { 00061 00062 // ...read the data into the receive buffer 00063 rxDataCnt = my_nrf24l01p.read( NRF24L01P_PIPE_P0, rxData, sizeof( rxData ) ); 00064 00065 // Display the receive buffer contents via the host serial link 00066 for ( int i = 0; rxDataCnt > 0; rxDataCnt--, i++ ) { 00067 00068 pc.putc( rxData[i] ); 00069 } 00070 00071 // Toggle LED2 (to help debug nRF24L01+ -> Host communication) 00072 myled2 = !myled2; 00073 } 00074 } 00075 }
Generated on Thu Jul 21 2022 00:12:26 by
1.7.2
