我开始用的XBee系列2 在发送端我在API模式下使用LPC2148具有的XBee协调, 和Rx端我是在LPC2148工作在路由器AT模式下在Shield上使用xbee。 我希望XBee能够激活一个D3引脚,它可以用来打开Rx端的继电器的Tx与LPC2148中的XBee,其中Rx的XBee与继电器API模式不工作
API帧格式如下代码使用c程序。
这里
#define Delimeter 0x7E
void Init_UART1(void) //This function setups UART1
{
unsigned int Baud16;
U1LCR = 0x83; // DLAB = 1
Baud16 = (Fpclk/16)/UART_BPS;
U1DLM = Baud16/256;
U1DLL = Baud16 % 256;
U1LCR = 0x03;
}
void main() {
Init_UART1();
LED1_ON();
setRemoteState(0x5);//AD3 config DOUT HIGH
Delay(25);
LED1_OFF();
setRemoteState(0x4);//AD3 config DOUT LOW
Delay(25);
void setRemoteState (char value) {
UART1_Write(Delimeter);//start byte
UART1_Write(0);//high part of length
UART1_Write(0X10);//low part of length
UART1_Write(0X17);//remote AT command
UART1_Write(0X0);//frame id 0 for no reply
UART1_Write(0X0);
UART1_Write(0X0);
UART1_Write(0X0);
UART1_Write(0X0);
UART1_Write(0X0);
UART1_Write(0X0);
UART1_Write(0XFF);// broadcast
UART1_Write(0XFF);// broadcast
UART1_Write(0XFF);
UART1_Write(0XFE);
UART1_Write(0X02);//apply changes immediately on remote
UART1_Write('D');//writing on AD3 pin
UART1_Write('3');
UART1_Write(value);
sum = 0x17 + 0xFF + 0xFF + 0xFF + 0xFE + 0x02 + 'D' + '3' + value;
UART1_Write(0xFF - (0xFF & sum));//checksum
Delay(25);
}
}
输入密码我不能够让我的接收方向的任何通信或数据。 D3引脚电压仍然很低。 请在这一点上指导...
这个程序工作正常与arduino使用Serial.write函数。
问候, 维杰
虽然它没有直接回答问题,但我觉得这可以指导OP缩小问题的原因。另一个用户搜索相似的问题将受益于相同的说明。它开始作为评论,但很快变得太大。我是否应该将其分解为多个评论并将其作为答案删除? – tomlogic