Я использую LoRa Dorji DRF1278DM в качестве коммуникационного модуля и устанавливаю его в центральном режиме. Из таблицы данных (http://www.dorji.com/docs/data/DRF1278DM.pdf) центральному модулю необходимо отправить строку с указанным форматом c. Я использую Raspberry Pi для центрального модуля и Arduino для модуля узла (с идентификатором узла = 1). Пробуйте простую программу, чтобы отправить строку "привет" из Raspberry в Arduino. Это код:
import serial
if __name__ == '__main__':
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
ser.flush()
while True:
ser.write(serial.to_bytes([0x00,0x01,0x68,0x65,0x6c,0x6c,0x6f]))
time.sleep(5)
* 2 первых байта для узла id, а остальное - "привет" в шестнадцатеричном формате
Arduino получает данные из малины, но не может их получить в строковом типе
void setup(){
Serial.begin(9600);
}
int=data;
void loop(){
if(Serial.available()>0){
data=Serial.read();
Serial.println(data);}
}
Если я установлю тип данных как целое число, проблем с его получением не возникнет, но я не знаю, как преобразовать его в «привет» обратно. Попробуйте установить тип данных как char, но с ошибкой "несовместимые типы в присваивании 'int' для 'char'
Есть ли способ получить его как строку? Также есть другой метод, который позволяет мне отправлять данные из raspberry pi без преобразования всех данных в шестнадцатеричный формат и последующей отправки их в байтах с сохранением, включая байты заголовка (идентификатор узла модуля узла)