Hi,
ich möchte einen string über die serielle schnittstelle einlesen, mein derzeitiger code sieht so aus, funktioniert aber leider nicht ganz.
unsigned char inp[100];
unsigned int inp_len;
unsigned int z;
inp_len = serial_getc();
for (z=1;z<inp_len; z++){
info = serial_getc();
inp[z]=info;
}
inp[z+1]=0;
draw_string(0,18,(char*)inp,3,DRAW_PUT);
Das Format der Daten ist 1 byte die länge des strings und dann der eigentliche String aber ohne char 0 am ende.
die länge wird richtig übertragen, aber es wird nichts angezeigt!
Ich kann C noch nicht so gut, weis irgenwer ne Lösung?
Gruß Adri
Hallo Adri,
for (z=1;z<inp_len; z++){
Da inp_len=1 ist z<inp_len falsch und die Schleife wird nich durchlaufen. Schleife mit z=0 initialisieren.
inp[z+1]=0;
Müsste glaub ich inp[z]=0; lauten, da z in der Schleife ja bereits incrementiert wurde.
Gruß
Telekatz
Hi Telekatz,
danke für die Antwort, das Problem hab ich schon in meinem Code gelöst,
das Problem dass nichts auf dem LCD angezeigt wird besteht immer noch :(
Gruß Adri
Wie sieht der Code denn jetzt aus?
unsigned char song[100];
unsigned int len_d;
unsigned int z;
unsigned char info;
len_d = serial_getc();
for (z=0;z<len_d; z++){
info = serial_getc();
song[z]=info;
}
song[z]=0x00;
draw_string(0,36,(char*)song,3,DRAW_PUT);
Ich hab die Lösung gefunden:
inp[z]=(char)info;
Gruß Adri