Я использую Xbee, подключенный к Raspberry pi3, API-mode = 2 и отправляю данные из xbee через последовательный интерфейс, который работает хорошо.Однако мне нужно прочитать данные, поступающие на тот же Xbee (эта часть работает не очень хорошо).Пожалуйста, найдите мой код ниже, который содержит скрипт для передачи и приема данных через последовательный интерфейс:
ser=serial.Serial(PORT, BAUDRATE)
while True:
#SEND DATA
msg=[0x10,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xFF,
0xFF,
0xFF,
0xFE,
0x00,
0xCC,
0x66,
0x00,
0x00,
0x01,
0x00,
0x03,
0xFF,
0x01,
0x00,
0x01,
0x77,
0x00,
0x1D]
ser.write(chr(0x7e)+
chr(len(msg)//256)+
chr(len(msg)%256))
ser.write(''.join(chr(x) for x in msg))
check=(0xFF - ( sum(msg) & 0xFF ))
ser.write(chr(check))
#READ DATA
msg=[0x90,
0x00,
0x13,
0xA2,
0x00,
0x41,
0x88,
0xA5,
0x2C,
0xFF,
0xFE,
0x00,
0x66,
0x00,
0x00,
0x01,
0x00,
0x03,
0xFF,
0x01,
0x00,
0x01,
0x77,
0x00,
0x1D]
ser.write(chr(0x7e)+
chr(len(msg)//256)+
chr(len(msg)%256))
ser.write(''.join(chr(x) for x in msg))
check=(0xFF - ( sum(msg) & 0xFF ))
ser.write(chr(check))
data = ser.read()
print(data)
ser.close()
Я могу отправить данные.Однако прочитанный скрипт выводит мне следующее:
~
▒
}
3
▒
A
▒
▒
▒
▒
▒
▒
f
▒
w
▒
Буду признателен за любую помощь в этом.Я предпочитаю последовательно читать и писать без использования библиотеки Python.Тем не менее, я открыт для предложения, которое будет работать для моего случая.