我開始用的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