手柄测试

Dependencies:   mbed nRF24L01P

Fork of nRF24L01P_Hello_World by YX ZHANG

Committer:
zhangyx
Date:
Thu Oct 26 08:48:54 2017 +0000
Revision:
5:458f974bb580
Parent:
3:61afd8d17063
set transfer length to 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Owen 0:a51a6e7da590 1 #include "mbed.h"
Owen 0:a51a6e7da590 2 #include "nRF24L01P.h"
Owen 0:a51a6e7da590 3
zhangyx 2:1199904d820e 4 Serial pc(USBTX, USBRX, 115200); // tx, rx
Owen 0:a51a6e7da590 5
zhangyx 3:61afd8d17063 6 // mosi, miso, sck, csn, ce, irq
zhangyx 3:61afd8d17063 7 nRF24L01P my_nrf24l01p(D4, D5, D3, D7, D8, D6);
Owen 0:a51a6e7da590 8
zhangyx 5:458f974bb580 9 // The nRF24L01+ supports transfers from 1 to 32 bytes
zhangyx 5:458f974bb580 10 #define TRANSFER_SIZE 1
Owen 0:a51a6e7da590 11
zhangyx 5:458f974bb580 12 void initNrf24L01()
zhangyx 5:458f974bb580 13 {
Owen 0:a51a6e7da590 14 my_nrf24l01p.powerUp();
Owen 0:a51a6e7da590 15
Owen 0:a51a6e7da590 16 // Display the (default) setup of the nRF24L01+ chip
Owen 0:a51a6e7da590 17 pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() );
Owen 0:a51a6e7da590 18 pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() );
Owen 0:a51a6e7da590 19 pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() );
Owen 0:a51a6e7da590 20 pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() );
Owen 0:a51a6e7da590 21 pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() );
Owen 0:a51a6e7da590 22
Owen 0:a51a6e7da590 23 pc.printf( "Type keys to test transfers:\r\n (transfers are grouped into %d characters)\r\n", TRANSFER_SIZE );
Owen 0:a51a6e7da590 24
Owen 0:a51a6e7da590 25 my_nrf24l01p.setTransferSize( TRANSFER_SIZE );
Owen 0:a51a6e7da590 26
Owen 0:a51a6e7da590 27 my_nrf24l01p.setReceiveMode();
Owen 0:a51a6e7da590 28 my_nrf24l01p.enable();
zhangyx 5:458f974bb580 29 }
zhangyx 5:458f974bb580 30 int main() {
zhangyx 5:458f974bb580 31 char data[TRANSFER_SIZE];
zhangyx 5:458f974bb580 32 initNrf24L01();
Owen 0:a51a6e7da590 33 while (1) {
Owen 0:a51a6e7da590 34 // If we've received anything in the nRF24L01+...
Owen 0:a51a6e7da590 35 if ( my_nrf24l01p.readable() ) {
Owen 0:a51a6e7da590 36 // ...read the data into the receive buffer
zhangyx 5:458f974bb580 37 my_nrf24l01p.read( NRF24L01P_PIPE_P0, data, TRANSFER_SIZE);
zhangyx 5:458f974bb580 38 pc.putc(data[0]);
zhangyx 5:458f974bb580 39 }
zhangyx 5:458f974bb580 40 if ( pc.readable() ) {
zhangyx 5:458f974bb580 41 data[0] = pc.getc();
zhangyx 5:458f974bb580 42 // Send the transmitbuffer via the nRF24L01+
zhangyx 5:458f974bb580 43 my_nrf24l01p.write( NRF24L01P_PIPE_P0, data, TRANSFER_SIZE );
Owen 0:a51a6e7da590 44 }
Owen 0:a51a6e7da590 45 }
Owen 0:a51a6e7da590 46 }