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.
Fork of JNP3_IOT_6_RADIO_ECHO_FIXED by
main_gw.cpp
00001 #include "mbed.h" 00002 #include "nRF24L01P.h" 00003 00004 //***************************************************************************// 00005 // !!! SETTINGS !!! 00006 00007 #define DATA_RATE NRF24L01P_DATARATE_250_KBPS 00008 //#define DATA_RATE NRF24L01P_DATARATE_1_MBPS 00009 //#define DATA_RATE NRF24L01P_DATARATE_2_MBPS 00010 00011 #define POWER NRF24L01P_TX_PWR_ZERO_DB 00012 //#define POWER NRF24L01P_TX_PWR_MINUS_6_DB 00013 //#define POWER NRF24L01P_TX_PWR_MINUS_12_DB 00014 //#define POWER NRF24L01P_TX_PWR_MINUS_18_DB 00015 00016 #define CHANNEL 0 // 0 - 30 00017 00018 00019 #define RX_ADDRESS ((unsigned long long) 0xABCDEF00) 00020 #define TX_ADDRESS ((unsigned long long) 0xABCDEF01) 00021 #define ECHO_DELAY 0.0 00022 00023 #define TRANSFER_SIZE 32 00024 00025 //***************************************************************************// 00026 00027 00028 00029 Serial pc(USBTX, USBRX); // tx, rx 00030 Serial wifi(PA_9, PA_10); 00031 nRF24L01P radio(PB_15, PB_14, PB_13, PB_12, PB_1, PB_2); // mosi, miso, sck, csn, ce, irq 00032 00033 00034 DigitalOut myled1(LED1); 00035 InterruptIn button(USER_BUTTON); 00036 00037 bool send_data = false; 00038 00039 void send_packet(){ 00040 send_data = true; 00041 } 00042 00043 int main() { 00044 00045 00046 char txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE]; 00047 00048 pc.baud(115200); 00049 wifi.baud(115200); 00050 radio.powerDown(); 00051 radio.powerUp(); 00052 00053 button.rise(&send_packet); 00054 00055 radio.setAirDataRate(DATA_RATE); 00056 radio.setRfOutputPower(POWER); 00057 radio.setRfFrequency(NRF24L01P_MIN_RF_FREQUENCY + 4 * CHANNEL); 00058 00059 radio.setCrcWidth(NRF24L01P_CRC_8_BIT); 00060 radio.enableAutoAcknowledge(NRF24L01P_PIPE_P0); 00061 radio.enableAutoAcknowledge(NRF24L01P_PIPE_P1); 00062 radio.enableAutoRetransmit(0x0F, 0x0F); 00063 00064 radio.setTxAddress(TX_ADDRESS, 4); 00065 radio.setRxAddress(TX_ADDRESS, 4, NRF24L01P_PIPE_P0); 00066 00067 radio.setRxAddress(RX_ADDRESS, 4, NRF24L01P_PIPE_P1); 00068 00069 // Display the (default) setup of the nRF24L01+ chip 00070 pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", radio.getRfFrequency() ); 00071 pc.printf( "nRF24L01+ Output power : %d dBm\r\n", radio.getRfOutputPower() ); 00072 pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", radio.getAirDataRate() ); 00073 pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", radio.getTxAddress() ); 00074 pc.printf( "nRF24L01+ RX0 Address : 0x%010llX\r\n", radio.getRxAddress(NRF24L01P_PIPE_P0) ); 00075 pc.printf( "nRF24L01+ RX1 Address : 0x%010llX\r\n", radio.getRxAddress(NRF24L01P_PIPE_P1) ); 00076 00077 00078 radio.setTransferSize(TRANSFER_SIZE, NRF24L01P_PIPE_P0); 00079 radio.setTransferSize(TRANSFER_SIZE, NRF24L01P_PIPE_P1); 00080 00081 myled1 = 0; 00082 00083 radio.setReceiveMode(); 00084 radio.enable(); 00085 00086 while (1) { 00087 int tx_bytes=0; 00088 int rx_bytes=0; 00089 00090 if(radio.readable(NRF24L01P_PIPE_P1)){ 00091 00092 rx_bytes = radio.read(NRF24L01P_PIPE_P1, rxData, sizeof(rxData)); 00093 myled1 = 1; 00094 //pc.printf("MSG [%d]\r\n"); 00095 wifi.write((const uint8_t *)rxData, sizeof(rxData), 0, 0); 00096 00097 } 00098 00099 } 00100 }
Generated on Wed Jul 20 2022 06:31:56 by
1.7.2
