Я пытаюсь подключить два sbee s s2 и заставить их общаться друг с другом в режиме API (далее я буду использовать больше устройств конца и маршрутизатора). В принципе, у меня есть координатор xbee, подключенный к компьютеру через адаптер digi, и у меня есть другое xbee, подключенное к PIC18f25. Сейчас я работаю над отправкой и получением данных от одного к другому и наоборот. Когда я подключаю оба адаптера usb, связь работает очень хорошо (я могу отправлять и получать данные с/на оба устройства). Однако, когда я пытаюсь работать с предыдущей конфигурацией, мне не удается получить данные, которые отправляются от координатора, с конечного устройства с ПОС. Здесь идет данные, которые я пытаюсь отправить:Невозможно получить данные с конечного устройства xbeepro2 с помощью pic18f25k20
От Coord 2 EndD - 7E 00 13 10 01 00 13 00 40 A2 8D 5A 8B FF FE 00 00 48 65 6C 6C 6F 96
От EndD 2 Координаты - 7E 00 13 10 01 00 00 00 00 00 00 00 00 FF FE 00 00 48 65 6C 6C 6F FD
Я думаю, что можно сказать, что когда я пытаюсь отправить данные из ПОС, устройство, координатор, он работает. Интересно, если проблема зависит от моего кода, который можно найти ниже:
#include <18F25K20.h>
#device adc =10
#device ICD=TRUE
#FUSES noWDT // Watch Dog Timer
#fuses LP //low power crystal
#FUSES XT //Crystal osc <= 4mhz
#fuses BROWNOUT_SW //Brownout enabled during operation, disabled during SLEEP
#FUSES NOPROTECT //Code not protected from reading
#FUSES BROWNOUT //brownout reset
#FUSES BORV27 //Brownout reset at 2.7V
#FUSES NOPUT //Power Up Timer
#FUSES NOCPD //No EE protection
#FUSES STVREN //Stack full/underflow will cause reset
#FUSES noDEBUG //No Debug mode for ICD
#FUSES noLVP //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOWRT //Program memory not write protected
#FUSES NOWRTD //Data EEPROM not write protected
#FUSES noIESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES NOPBADEN //PORTB pins are configured as analog input channels on RESET
#FUSES NOWRTC //configuration not registers write protected
#FUSES NOWRTB //Boot block not write protected
#FUSES NOEBTR //Memory not protected from table reads
#FUSES NOEBTRB //Boot block not protected from table reads
#FUSES NOCPB //No Boot Block code protection
#FUSES LPT1OSC //Timer1 configured for low-power operation
#FUSES MCLR //Master Clear pin enabled
#FUSES XINST //Extended set extension and Indexed Addressing mode enabled*/
#use delay(clock = 4000000) /* Clock definition */
#use rs232(BAUD = 9600, XMIT = PIN_C6, RCV = PIN_C7) /* ZigBee and PIC Communication */
int16 var;
byte var2=0x00;
long timeout;
void main() {
output_low(PIN_C5); // Turning on Xbee
delay_ms(10);
while(1) {
delay_ms(100);
output_high(PIN_C0); // TESTE
delay_ms(100);
output_low(PIN_C0);
timeout=0;
while(!kbhit()&&(++timeout<5000)) delay_us(5);
if(kbhit()){
output_high(PIN_C0);
delay_ms(10);
output_low(PIN_C0);
delay_ms(10);
output_high(PIN_C0);
delay_ms(10);
output_low(PIN_C0);
delay_ms(10);
output_high(PIN_C0);
delay_ms(10);
output_low(PIN_C0);
var2 = getc();
delay_ms(1000);
}
/* Data which is succesfully sent to coordinator
putc(0x7E);
putc(0x00);
putc(0x13);
putc(0x10);
putc(0x01);
putc(0x00);
putc(0x00);
putc(0x00);
putc(0x00);
putc(0x00);
putc(0x00);
putc(0x00);
putc(0x00);
putc(0xFF);
putc(0xFE);
putc(0x00);
putc(0x00);
putc(0x48);
putc(0x65);
putc(0x6C);
putc(0x6C);
putc(0x6F);
putc(0xFD);*/
}
}
Программа должна мигать светодиод (PIN_C0) 100 мс, и мигать его быстрее, если какие-либо данные, введите в ПОС , Однако это не работает, как я планировал, и я не знаю, почему.
Любая помощь будет оценена по достоинству.
Благодарю вас всех,
С уважением.
Определенно это была ошибка в макете или какой-либо связи. Я просмотрел его, и он работает сейчас. – user3169135