我一直在尝试从协调器 XBee 向路由器 AT模式中的 Xbee 发送数据。有用。
然而,在不可接受的持续时间内有太多延迟。如何解决延迟问题?
int led = 0;
int ledX = 13;
int pin = 5;
int bs;
String store[20];
void setup() {
pinMode(led,OUTPUT);
pinMode(pin,INPUT);
Serial.begin(9600);
}
void loop() {
// bs = digitalRead(5);
//if(bs == LOW){
digitalWrite(led,HIGH);
setRemoteState(0x05);
delay(1000);
//}
//else if(bs == HIGH){
digitalWrite(led,LOW );
setRemoteState(0x04);
delay(1000);
//}
}
void setRemoteState(char value){
Serial.write(0x7E); //start of the frame
Serial.write((byte)0); // byte length
Serial.write(0x10); //high part 16 in decimal
Serial.write(0x17); // AT command request
Serial.write((byte)0); // frame ID dont need any ack
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write(0xFF);
Serial.write(0xFF);
Serial.write(0xFF);
Serial.write(0xFE);
Serial.write(0x02);
Serial.write('D');
Serial.write('3'); //change pin D3
Serial.write(value);
long sum = 0x17 + 0xFF + 0xFF + 0xFF + 0xFE + 0x02 + 'D' + '3' + value;
Serial.write(0xFF - (sum &0xFF) );
}
以上是我在我的arduino中实现的代码
答案 0 :(得分:0)
你看到多少延迟?将最后一个字节发送到协调器后,在路由器上看到数据之前经过了多少毫秒?
什么是可接受的水平?这是低速(250kbps)无线电网络,可能需要跨多个节点反弹您的消息。预期延迟低于100毫秒可能是不现实的。
如果您以9600波特率运行XBee模块,请将波特率提高到115200bps,以减少发送到一个XBee并在另一个XBee上接收的时间。