【发布时间】:2013-10-27 02:36:45
【问题描述】:
我正在尝试通过 Arduino pro mini 配置我的 XBee 模块,该 Arduino pro mini 通过 sparkfun 的 de FTDI basic 连接到我的计算机。 我已经可以通过 Arduino 将数据从 Xbee 写入和发送到另一个 Xbee 模块。 我的问题是我想通过 arduino 配置 Xbee。我正在使用 arduino 向我的 Xbee 发送“+++”,并希望通过 arduino 编辑器的串行监视器从 Xbee 接收“OK”。问题是我可以发送它但从不接收并且“OK”,当我尝试配置 Xbee 时,配置从未发生过。所以我无法访问 Xbee 命令行。
uint8_t pinRx = 0, pinTx = 1; //Initialise pins on the Arduino
char GotChar;
long BaudRate = 4800;
int incomingByte=0;
SoftwareSerial mySerial( pinRx , pinTx ); //Initialise SoftwareSerial
void init_USB()
{
Serial.begin(BaudRate);
Serial.println("Start");
mySerial.begin(BaudRate);
}
void init_XBee()
{
Serial.begin(9600);
int check = 0;
while(T_XBEE_CONTROLLER_CheckOK() == 0)
{
Serial.println("CheckOK");
Serial.write("+++");
delay(2000);
}
Serial.println("ATCH 8\r");
delay(2000);
Serial.write("ATID 1234\r");
delay(2000);
Serial.write("+++");
delay(2000);
Serial.write("ATPL 0\r");
delay(2000);
Serial.write("+++");
delay(2000);
Serial.write("ATAP 2\r");
delay(2000);
}
int T_XBEE_CONTROLLER_CheckOK()
{
char ch[2];
ch[0] = 0x00;
while(! ((ch[0] == 'O' ) && (ch[1] == 'K') ))
{
ch[0] = mySerial.read();
ch[1] = mySerial.read();
if((ch[0] != 'O') && (ch[1] != 'K') && (ch[2] != '\r'))
{
Serial.println("FAILED");
return 0;
}
Serial.println("SUCCES");
return 1;
}
return 0;
}
【问题讨论】: