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 nRF24L01P_Hello_World by
main.cpp@2:4704fdd9ef91, 2017-12-24 (annotated)
- Committer:
- wanzq
- Date:
- Sun Dec 24 03:12:05 2017 +0000
- Revision:
- 2:4704fdd9ef91
- Parent:
- 1:5be2682710c6
controller pro
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Owen | 0:a51a6e7da590 | 1 | #include "mbed.h" |
| Owen | 0:a51a6e7da590 | 2 | #include "nRF24L01P.h" |
| wanzq | 2:4704fdd9ef91 | 3 | #define TRANSFER_SIZE 12 |
| wanzq | 2:4704fdd9ef91 | 4 | #define Send_Repeat_Times 10//命令重发次数 |
| wanzq | 2:4704fdd9ef91 | 5 | #define command_roll 0x51 |
| wanzq | 2:4704fdd9ef91 | 6 | #define command_start 0x50 |
| wanzq | 2:4704fdd9ef91 | 7 | #define command_end 0x52 |
| wanzq | 2:4704fdd9ef91 | 8 | #define command_slow 0x53 |
| Owen | 0:a51a6e7da590 | 9 | |
| wanzq | 2:4704fdd9ef91 | 10 | int flag=0;//发送状态标志 0:发送姿态命令 1:发送启动命令 2:发送急停命令 3:发送缓降命令 |
| wanzq | 2:4704fdd9ef91 | 11 | char txdata[TRANSFER_SIZE]; |
| wanzq | 2:4704fdd9ef91 | 12 | |
| wanzq | 2:4704fdd9ef91 | 13 | nRF24L01P my_nrf24l01p(PB_15, PB_14, PB_13, PB_6, PB_5, PB_7); // mosi, miso, sck, csn, ce, irq |
| Owen | 0:a51a6e7da590 | 14 | |
| wanzq | 2:4704fdd9ef91 | 15 | DigitalOut myled1(PA_6); |
| wanzq | 2:4704fdd9ef91 | 16 | DigitalOut myled2(PA_7); |
| Owen | 0:a51a6e7da590 | 17 | |
| wanzq | 2:4704fdd9ef91 | 18 | //DigitalIn sz_n(PB_10),sz_p(PA_5),sx_p(PB_0),sx_n(PB_1),sy_p(PB_3),sy_n(PB_4); |
| wanzq | 2:4704fdd9ef91 | 19 | AnalogIn L_X(PA_0),L_Y(PA_1),R_X(PA_2),R_Y(PA_3); |
| wanzq | 2:4704fdd9ef91 | 20 | InterruptIn START(PB_4),END(PB_3),SLOW(PB_0); |
| wanzq | 2:4704fdd9ef91 | 21 | Serial pc(PA_9,PA_10,9600); |
| wanzq | 2:4704fdd9ef91 | 22 | |
| wanzq | 2:4704fdd9ef91 | 23 | void start(){flag=1;} |
| wanzq | 2:4704fdd9ef91 | 24 | void end(){flag=2;} |
| wanzq | 2:4704fdd9ef91 | 25 | void slow(){flag = 3;} |
| Owen | 0:a51a6e7da590 | 26 | |
| Owen | 0:a51a6e7da590 | 27 | int main() { |
| wanzq | 2:4704fdd9ef91 | 28 | for(int i=0;i!=TRANSFER_SIZE;i++) |
| wanzq | 2:4704fdd9ef91 | 29 | txdata[i] = 0; |
| Owen | 0:a51a6e7da590 | 30 | my_nrf24l01p.powerUp(); |
| Owen | 0:a51a6e7da590 | 31 | my_nrf24l01p.setTransferSize( TRANSFER_SIZE ); |
| Owen | 0:a51a6e7da590 | 32 | my_nrf24l01p.setReceiveMode(); |
| Owen | 0:a51a6e7da590 | 33 | my_nrf24l01p.enable(); |
| wanzq | 2:4704fdd9ef91 | 34 | |
| wanzq | 2:4704fdd9ef91 | 35 | myled1 = 0; |
| wanzq | 2:4704fdd9ef91 | 36 | myled2 = 0; |
| wanzq | 2:4704fdd9ef91 | 37 | |
| wanzq | 2:4704fdd9ef91 | 38 | START.mode(PullDown); |
| wanzq | 2:4704fdd9ef91 | 39 | END.mode(PullDown); |
| wanzq | 2:4704fdd9ef91 | 40 | SLOW.mode(PullDown); |
| wanzq | 2:4704fdd9ef91 | 41 | START.rise(&start); |
| wanzq | 2:4704fdd9ef91 | 42 | END.rise(&end); |
| wanzq | 2:4704fdd9ef91 | 43 | SLOW.rise(&slow); |
| Owen | 0:a51a6e7da590 | 44 | while (1) { |
| wanzq | 2:4704fdd9ef91 | 45 | switch (flag) |
| wanzq | 2:4704fdd9ef91 | 46 | { |
| wanzq | 2:4704fdd9ef91 | 47 | case 0: |
| wanzq | 2:4704fdd9ef91 | 48 | txdata[0]= command_roll; |
| wanzq | 2:4704fdd9ef91 | 49 | short int data[4]; |
| wanzq | 2:4704fdd9ef91 | 50 | data[0] = L_X.read_u16(); |
| wanzq | 2:4704fdd9ef91 | 51 | data[1] = L_Y.read_u16(); |
| wanzq | 2:4704fdd9ef91 | 52 | data[2] = R_X.read_u16(); |
| wanzq | 2:4704fdd9ef91 | 53 | data[3] = R_Y.read_u16(); |
| wanzq | 2:4704fdd9ef91 | 54 | txdata[2] = data[0]; |
| wanzq | 2:4704fdd9ef91 | 55 | txdata[1] = data[0] >> 8; |
| wanzq | 2:4704fdd9ef91 | 56 | txdata[4] = data[1]; |
| wanzq | 2:4704fdd9ef91 | 57 | txdata[3] = data[1] >> 8; |
| wanzq | 2:4704fdd9ef91 | 58 | txdata[6] = data[2]; |
| wanzq | 2:4704fdd9ef91 | 59 | txdata[5] = data[2] >> 8; |
| wanzq | 2:4704fdd9ef91 | 60 | txdata[8] = data[3]; |
| wanzq | 2:4704fdd9ef91 | 61 | txdata[7] = data[3] >> 8; |
| wanzq | 2:4704fdd9ef91 | 62 | txdata[9] = 0; |
| wanzq | 2:4704fdd9ef91 | 63 | txdata[10] = 0; |
| wanzq | 2:4704fdd9ef91 | 64 | txdata[11] = 0; |
| wanzq | 2:4704fdd9ef91 | 65 | my_nrf24l01p.write( NRF24L01P_PIPE_P0, txdata, 12); |
| wanzq | 2:4704fdd9ef91 | 66 | break; |
| wanzq | 2:4704fdd9ef91 | 67 | case 1: |
| wanzq | 2:4704fdd9ef91 | 68 | txdata[0] = command_start; |
| wanzq | 2:4704fdd9ef91 | 69 | for(int i=0;i<Send_Repeat_Times;i++) {my_nrf24l01p.write( NRF24L01P_PIPE_P0, txdata, 12); wait(0.01);} |
| wanzq | 2:4704fdd9ef91 | 70 | flag = 0; |
| wanzq | 2:4704fdd9ef91 | 71 | break; |
| wanzq | 2:4704fdd9ef91 | 72 | case 2: |
| wanzq | 2:4704fdd9ef91 | 73 | txdata[0] = command_end; |
| wanzq | 2:4704fdd9ef91 | 74 | for(int i=0;i<Send_Repeat_Times;i++) {my_nrf24l01p.write( NRF24L01P_PIPE_P0, txdata, 12); wait(0.01);} |
| wanzq | 2:4704fdd9ef91 | 75 | flag = 0; |
| wanzq | 2:4704fdd9ef91 | 76 | break; |
| wanzq | 2:4704fdd9ef91 | 77 | case 3: |
| wanzq | 2:4704fdd9ef91 | 78 | txdata[0] = command_slow; |
| wanzq | 2:4704fdd9ef91 | 79 | for(int i=0;i<Send_Repeat_Times;i++) {my_nrf24l01p.write( NRF24L01P_PIPE_P0, txdata, 12); wait(0.01);} |
| wanzq | 2:4704fdd9ef91 | 80 | flag = 0; |
| wanzq | 2:4704fdd9ef91 | 81 | break; |
| Owen | 0:a51a6e7da590 | 82 | } |
| wanzq | 2:4704fdd9ef91 | 83 | wait(0.05);//防止过快发送造成命令无法被接收 |
| Owen | 0:a51a6e7da590 | 84 | } |
| Owen | 0:a51a6e7da590 | 85 | } |
| wanzq | 2:4704fdd9ef91 | 86 | |
| wanzq | 2:4704fdd9ef91 | 87 |
