トランシーバー練習プログラム。その受信用です。 stm32_hello_nrf24をベースにしています。

Dependencies:   mbed nRF24L01P

Files at this revision

API Documentation at this revision

Comitter:
rgoto
Date:
Tue Nov 24 10:10:52 2020 +0000
Commit message:
goto

Changed in this revision

main4.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
nRF24L01P.lib Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r d20773e67c2a main4.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main4.cpp	Tue Nov 24 10:10:52 2020 +0000
@@ -0,0 +1,103 @@
+
+//送信用プログラム
+
+#include "mbed.h"
+#include "nRF24L01P.h"
+RawSerial pc(PA_2, PA_3,9600 );
+AnalogIn   mike(PA_0);
+Ticker    interrput;
+#define TRANSFER_SIZE   1
+int   flg = 0;
+float txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE];
+int txDataCnt = 0;
+int rxDataCnt = 0;
+ 
+nRF24L01P my_nrf24l01p(D11, D12, D13, D10, D9,D8);    // mosi, miso, sck, csn, ce, irq
+//nRF24L01P my_nrf24l01p(p5, p6, p7, p8, p9, p10);    // mosi, miso, sck, csn, ce, irq
+
+//DigitalOut myled1(LED1);
+//DigitalOut myled2(D3);
+
+
+void timer(){     //タイマー割り込みによるマイクからのanalogIN
+      if(flg==0){    
+    // ...add it to the transmit buffer
+        txData[txDataCnt] = mike.read();
+        flg = 1;              
+       }    
+}
+
+int main() {
+printf("ffff\n");
+// 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.
+
+    interrput.attach(&timer, 0.1f);  //タイマー割り込み。つながることを確認したかったので0.1fにしてます
+   
+int i=0;
+    my_nrf24l01p.powerUp();
+    my_nrf24l01p.setRfFrequency(NRF24L01P_MIN_RF_FREQUENCY);//2400-2525
+    my_nrf24l01p.setRfOutputPower(NRF24L01P_TX_PWR_MINUS_12_DB);//mAX 0  -6 -12 -18
+    my_nrf24l01p.setAirDataRate(NRF24L01P_DATARATE_250_KBPS);//250k,1000,2000K
+    // 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 );//mAX 4
+
+    my_nrf24l01p.setReceiveMode();
+    my_nrf24l01p.enable();
+    
+
+
+    while (1) {
+
+        // If we've received anything over the host serial link...
+//        if ( pc.readable() ) {
+
+            
+            
+
+            // If the transmit buffer is full
+            if ( flg == 1 ) {
+
+                // Send the transmitbuffer via the nRF24L01+
+                my_nrf24l01p.write( NRF24L01P_PIPE_P0, (char*)txData, txDataCnt );
+
+                txDataCnt = 0;
+                flg = 0;     //送信完了の合図flgへの代入
+            }
+
+            // Toggle LED1 (to help debug Host -> nRF24L01+ communication)
+  //          myled1 = !myled1;
+//        }
+/*   txData[0]='A';    
+   txData[1]='B';
+   txData[2]='C';    
+   txData[3]='0' + (i++ & 0x0f);  
+   */  
+#if   defined ( TARGET_NUCLEO_L053R8 )
+ my_nrf24l01p.write( NRF24L01P_PIPE_P0, txData, 4 );
+#endif 
+        // 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, (char*)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)
+    //        myled1 = !myled1;
+        }
+    }
+}
diff -r 000000000000 -r d20773e67c2a mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Nov 24 10:10:52 2020 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/mbed_official/code/mbed/builds/e2bfab296f20
\ No newline at end of file
diff -r 000000000000 -r d20773e67c2a nRF24L01P.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nRF24L01P.lib	Tue Nov 24 10:10:52 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/I-O-DATA-DEV2/code/nRF24L01P/#9592d0040776