2014-06-25 4 views
0

내 송수신기가 maniacbug의 RF24 마스터 라이브러리의 코드가 완벽하게 작동하기 때문에 잘 작동합니다. 그러나 나는 정수를 앞뒤로 보내 주기로 결정했습니다. 작동하지 않는 것 같습니다. 직렬 모니터는 다른 정수를 인쇄합니다. 텍사스 코드는 RX 코드가arduino 및 nrf24L01 + 트랜시버를 사용하여 무선으로 통신 할 수 없음

#include<SPI.h> 
#include"nRF24L01.h" 
#include"RF24.h" 
//#include"printf.h" 
RF24 radio(9,10); 
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL }; 
unsigned int transmit = 2014; 
//unsigned int get = 0; 
void setup(void) 
{ 
    Serial.begin(9600); 
    //printf_begin(); 
    radio.begin(); 
    radio.setRetries(15,15); 
    radio.setPayloadSize(8); 
    radio.openWritingPipe(pipes[1]); 
    radio.openReadingPipe(1,pipes[0]); 
    //radio.startListening(); 
    //radio.printDetails(); 
} 
void loop(void) 
{ 
    radio.startListening(); 
    unsigned int get; 
    bool ok = radio.read(&get,8); 
    if(ok) 
    { 
    //printf("received successfully\n"); 
    Serial.println("received successfully"); 
    //printf("received payload = %u\n",get); 
    Serial.print("received payload is "); 
    Serial.println(get); 
    } 
    else 
    //printf("failed to receive\n"); 
    Serial.println("failed to receive"); 
    radio.stopListening(); 
    //unsigned int transmit = 2014; 
    bool ok2 = radio.write(&transmit,8); 
    if(ok) 
    //printf("ok....transmission successful !!!"); 
    Serial.println("ok...transmission successful..!!"); 
    else 
    //printf("faioed to tramsmitt\n"); 
    Serial.println("failed to transmit"); 
    delay(1000); 

} 

심지어 printf.h 헤더 파일 내가 코드를 작성할 때 작동하지 않는 것 - 이것도하지만 그들은 도서관에서 잘 작동

#include<SPI.h> 
#include"nRF24L01.h" 
#include"RF24.h" 
//#include"printf.h" 
RF24 radio(9,10); 
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL }; 
const unsigned int transmit =1995; 
//unsigned int get = 1; 
void setup(void) 
{ 
    Serial.begin(9600); 
    //printf_begin(); 
    Serial.println("lets begin the operation"); 
    radio.begin(); 
    radio.setRetries(15,15); 
    radio.setPayloadSize(8); 
    radio.openWritingPipe(pipes[0]); 
    radio.openReadingPipe(1,pipes[1]); 
    //Serial.print("now get is "); 
    //Serial.println(get); 
    //radio.startListening(); 
    //radio.printDetails(); 
} 

void loop(void) 
{ 
     //printf("starting the transmission\n"); 
     Serial.println("starting the transmission"); 
     radio.stopListening(); 
     bool ok = radio.write(&transmit, 8); 
     if(ok) 
     //printf("ok....transmission successful !!!"); 
     Serial.println("ok...transmission successful..!!"); 
     else 
     //printf("faioed to tramsmitt\n"); 
     Serial.println("failed to transmit"); 
     radio.startListening(); 
     unsigned int get; 
     bool ok2 = radio.read(&get, 8); 
     if(ok2) 
     { 
     //printf("received the packet successfully\n"); 
     Serial.println("received the packet successfully"); 
     //printf("received package is %u\n",get); 
     Serial.print("received package is "); 
     Serial.println(get); 
     } 
     else 
     //printf("failed to receive\n"); 
     Serial.println("failed to receive"); 
     delay(1000); 
} 

- 이것도 예.

답변

1

시리얼 윈도우의 전송 속도를 확인하십시오. 대부분 9600 보오는 문제를 만듭니다. 시도해보십시오 57600 전송 속도

+0

그게 아니라면 작동 – user3647970

+0

내 코드를 조금 변경하고 그것은 57600에서 전송 속도로 잘 작동하기 시작했습니다. – user3647970