![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
手柄测试
Fork of nRF24L01P_Hello_World by
Diff: main.cpp
- Revision:
- 4:d6e5433bcbf6
- Parent:
- 3:61afd8d17063
diff -r 61afd8d17063 -r d6e5433bcbf6 main.cpp --- a/main.cpp Wed Oct 11 06:29:40 2017 +0000 +++ b/main.cpp Wed Nov 01 09:50:47 2017 +0000 @@ -1,78 +1,53 @@ #include "mbed.h" #include "nRF24L01P.h" - -Serial pc(USBTX, USBRX, 115200); // tx, rx - -// mosi, miso, sck, csn, ce, irq -nRF24L01P my_nrf24l01p(D4, D5, D3, D7, D8, D6); - -DigitalOut myled1(LED1); -DigitalOut myled2(LED2); +#define TRANSFER_SIZE 11 +#define JY901transfersize 44 -int main() { - - pc.printf("init\r\n"); +Serial pc(PA_9,PA_10, 9600); // tx, rx +//Serial JY901(PB_10,PB_11,9600); +// mosi, miso, sck, csn, ce, irq +nRF24L01P my_nrf24l01p(PB_15, PB_14, PB_13, PB_6, PB_5, PB_7); -// 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 - +int main() { + pc.printf("init\r\n"); + char JY901data[JY901transfersize]; char txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE]; + int JY901cnt = 0; int txDataCnt = 0; int rxDataCnt = 0; - 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) { + /*while(JY901cnt < JY901transfersize) + JY901data[JY901cnt++] = JY901.getc(); + my_nrf24l01p.write(NRF24L01P_PIPE_P0,JY901data,JY901cnt); + my_nrf24l01p.setReceiveMode(); + JY901cnt = 0;;*/ + + - // If we've received anything over the host serial link... - if ( pc.readable() ) { - - // ...add it to the transmit buffer + if ( my_nrf24l01p.readable() ) { + if ( pc.readable() ) { 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 ); - + my_nrf24l01p.setReceiveMode(); 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; } } }