Ohne vollständigen Code kann man ja nur Raten, aber beim Überfliegen ist mir gleich folgendes aufgefallen:
i wird nicht überwacht. Fehler auf der UART Seite -> Array kann Überlaufen. Sowas kann dir schon passieren wenn der Controller mal zu lange in einem Interrupt braucht und das entscheidente UART Zeichen verpasst wird!Code:do { c=USART_Receive(); if(c==stern) return 0; if(c==komma) return i; if(c!=end) //Buchstaben sammeln { line[i]=(char)c; i++; line[i]=0; //End of String updaten } }while(c!=end);







Zitieren

Lesezeichen