moin,
ich würde gerne die Inhalte eines (unsigned char) Arrays in ASCII zurückgeben.
also genauso, wie die Darstellung durch Serial.write().
Wie kann ich vorgehen?
hier mein Programm
unsigned char* Get_Extended_Version() {
RFID_Serialport.begin(115200); // Baudrate zur Kommunikation mit dem RFID-Sensor
byte*p;
Senden(EV_Nutzbytesanzahl, EV_Nutzbyte1, EV_Nutzbyte2);
if (Fehlerbehandlung(EV_Empfangsbyteslaenge) == (-1))
return 0;
else {
unsigned char EV_Array [43];
p = Empfangen(EV_Empfangsbyteslaenge);
for (int n = 0; n < EV_Empfangsbyteslaenge; n++) {
EV_Array[n] = *(p + n);
Serial.write(EV_Array[n]);
}
return EV_Array;
}
if (Empfangen(HW_SW_Empfangsbyteslaenge) == 2)return 0;
}
ich würde gerne die Inhaltes des Arrays in ASCII umwandeln so, dass ich die umgewandelten Arrayselementen in form eines Strings ausgebe, wenn ich die Funktion aufrufe.
Z.B.: Serial.print(Get_Extended_Version())
bekomme ich das Hier
Du darfst keine Zeiger auf lokale Variablen zurückgeben! Der Normale C weg ist es das Array als Parameter zu übergeben und dann wieder zurückzugeben. Und letzeres ist auch nur nötig damit man die Funktion direkt in andere Funktionen einsetzen kann
Ist falsch, auch wenn deine lokale Test-Ausgabe noch richtig ist. EV_Array müsste zumindest als static deklariert werden, damit es außerhalb des else-Zweigs (und der Funktion) noch gültig ist.