带有Xbee的Tx LPC2148处于API模式,带有继电器的Rx Xbee不工作
我开始使用xbee系列2开发lpc2148。 在传输端,我在API模式下使用lpc2148和xbee协调器, 在Rx端,我在路由器AT模式下使用屏蔽上的xbee。 我想让XBee激活一个D3引脚,可以用来打开Rx端的继电器 API帧格式如下,代码使用c程序编写 在这里输入代码带有Xbee的Tx LPC2148处于API模式,带有继电器的Rx Xbee不工作,api,xbee,Api,Xbee,我开始使用xbee系列2开发lpc2148。 在传输端,我在API模式下使用lpc2148和xbee协调器, 在Rx端,我在路由器AT模式下使用屏蔽上的xbee。 我想让XBee激活一个D3引脚,可以用来打开Rx端的继电器 API帧格式如下,代码使用c程序编写 在这里输入代码 #define Delimeter 0x7E void Init_UART1(void) //This function setups UART1 { unsigned in
#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引脚体积仍然很低。
请在这一点上给予指导
该程序使用Serial.write函数与arduino配合运行良好
问候,,
Vijay您使用的波特率是否正确?你确定你正确连接了TX/RX,并且没有越过它们吗?如果您启用了硬件流控制,是否断言进入XBee的RTS信号?XBee模块是否已通电并接收到足够的电流 如果您在另一台设备(通过FTDI的TTL至USB电缆)上监控XBee传输信号,您是否在启动时看到字节(我相信它在启动时发送调制解调器状态)?如果您监控LPC2148传输信号,是否看到您认为正在发送的字节流(确认您正确驱动UART1) 您是否可以通过在高输出和低输出之间切换
ATD0
,并使用LED或示波器检查,来判断XBee模块是否正在接收您的请求?您是否有任何硬件可以用来监视两个设备之间的串行流,以查看它是否正在发送您认为正在发送的字节?您确定它正在计算正确的校验和(以某种方式转储字节,并尝试通过X-CTU运行它们,以查看它们是否工作)
如果要在LPC2148和XBee模块之间进行大量通信,您可能需要尝试将其移植到平台。它包括多个XBee帧处理层,可以减少您需要编写的软件量。虽然它不能直接回答问题,但我觉得这可以引导OP缩小问题的原因。另一个用户搜索类似问题时,也会从相同的说明中受益。它一开始只是一个评论,但很快就变得太大了。我是否应该将其分解为多个注释并将其作为答案删除?