2015-12-14 90 views
1

我想讓一個Xbee與另一個XBee交談。我知道我可以使用putc向網絡上的所有Xbees進行廣播,但我想專門針對其中的一個。我知道我需要使用XBee上的硬件地址來執行此操作,並使用名爲AT Commands模式的東西,但我不認爲我理解它。例如,我看到要進入AT命令模式,我需要發送'+++',但是,我不明白該怎麼做。我試過這個:使用AT命令模式定位Xbee

xbee.printf('+++'); 

但不知道在哪裏尋找某種消息作爲迴應。

我不明白,這種模式似乎無法找到任何這讓我對我的情況和相應的一個例子。

我在FRDM-K64F上使用正常的Xbee。

回答

1

解決了它。

要做到這一點,首先需要做的:

xbee.printf("xxx"); 

這讓你進入AT​​命令模式,然後就可以運行AT命令。您需要和進入AT命令模式後,這個工作要等待至少1秒鐘:

wait(1) 

要發送到特定的XBee,你需要它的16位地址,這可以從下面找到的Xbee(雖然有一個AT命令來獲得這個)。前8位是Xbee的高地址(這對所有Xbee都是一樣的),第二個是低地址,在發送到特定的Xbee之前,您需要使用AT命令設置這兩個地址。要設置這些,你必須做到以下幾點:

xbee.printf("atdh 0013A200\n\r"); 
xbee.printf("atdl 12345678\n\r"); 

必須執行\n\r一部分,這個模擬輸入按鈕按下這是需要實際運行的命令。

的atdh命令設置高地址和ATDL命令設置低地址。一旦完成,發送的Xbee將被配置爲發送到特定的Xbee,並且不會在網絡上廣播。所以當你現在這樣做時:

xbee.putc('Y'); 

它會去Xbee誰的地址,你已經設置。

運行這些命令後,您可能需要等待10秒,因爲我不認爲I/O在AT命令模式下工作(我還沒有制定出如何退出AT命令模式,但是會在我執行時更新) 。

+1

如果您要解決所有這些問題,您應該考慮在API模式下運行XBee,併爲您的數據構造(添加標頭和校驗和)。有一個開放源代碼庫供主機在API模式下與XBee模塊進行通信,並且我使用mbed在Freedom板上工作。你可能想看看:https://github.com/tomlogic/xbee_ansic_library – tomlogic

+1

順便說一句,'ATCN'應該退出命令模式。 – tomlogic

+0

謝謝。我會看看那個! – Haych