2015-12-14 4 views
1

Я пытаюсь заставить один Xbee поговорить с другим. Я понимаю, что я могу использовать putc для трансляции всех Xbees в сети, но я хочу настроить таргетинг на него. Я знаю, что мне нужно использовать аппаратный адрес XBee для этого и с помощью так называемого режима AT Commands, но я не думаю, что понимаю. Например, я видел, что для перехода в режим AT Commands мне нужно отправить «+++», однако я не понимаю, что делать. Я пробовал это:Ориентация на Xbee с использованием команд AT-команд

xbee.printf('+++'); 

но не знаю, где искать какое-то сообщение в ответ.

Я не понимаю этот режим и не могу найти ничего, что дает мне пример для моей ситуации или релевантного.

Я использую обычный Xbee на FRDM-K64F.

ответ

1

Работал.

Чтобы сделать это, сначала нужно сделать:

xbee.printf("xxx"); 

Это ставит вас в режим AT-команд, а затем вы можете запустить команды AT. Вы должны ждать по крайней мере 1 секунду до и после перехода в режим AT-командах для этой работы:

wait(1) 

Чтобы отправить конкретный XBee, вам нужно это 16-битный адрес, и это может быть найдено из нижних Xbee (хотя есть AT-команда, чтобы получить это). Первые 8 бит - это высокий адрес Xbee (это то же самое для всех Xbees), а второй - это низкий адрес, и вам нужно установить оба этих параметра с помощью команд AT перед отправкой на конкретный Xbee. Для того, чтобы установить их необходимо выполнить следующие действия:

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

Вы должны сделать \n\r часть, как это имитирует нажатие кнопки Enter, которая необходима, чтобы фактически выполнить команду.

Команда atdh устанавливает высокий адрес, а команда atdl устанавливает низкий адрес. Как только это будет сделано, отправляемый Xbee будет настроен для отправки на конкретный Xbee и не будет транслироваться для всех в сети. Итак, когда вы сейчас делаете:

xbee.putc('Y'); 

он пойдет в адрес Xbee, адрес которого вы установили.

Возможно, вам придется подождать 10 секунд после выполнения этих команд, потому что я не думаю, что I/O работает в режиме AT Command (я еще не разработал, как выйти из режима AT Command, но обновится, когда я это сделаю) ,

+1

Если вы собираетесь решить эту проблему, вам следует рассмотреть возможность запуска XBee в режиме API и создание ваших данных (добавление заголовков и контрольных сумм). Существует библиотека Open Source для хостов для связи с модулями XBee в режиме API, и я получил ее работу на одной из плат Freedom с помощью mbed. Вы можете проверить это: https://github.com/tomlogic/xbee_ansic_library – tomlogic

+1

BTW, 'ATCN' должен выйти из режима команды. – tomlogic

+0

Спасибо. Я посмотрю на это! – Haych

Смежные вопросы