?
Da hatten wir doch vor kurzen schon mal
1 | // Einen String per USART 0 empfangen
|
2 | void empfangeString0(char*puffer)
|
3 | {
|
4 | while (empfangeZeichen0() != '\n') // Solange Zeichen in den Puffer schreiben bis Line Feed erreicht ist
|
5 | {
|
6 | *puffer++ = empfangeZeichen0(); // Empfangenes Zeichen in Puffer schreiben und Puffer um 1 erhöhen
|
7 | }
|
8 | *puffer = '\0';
|
9 |
|
10 | }
|
Du kannst es drehen und wenden wie du willst. Du MUSST nach den Regeln
spielen! Und wenn du dich Kopf stellst und mit dem Fuss aufstampfst, das
hilft dir nichts. Regeln sind Regeln. UNd auch du kannst sie nicht
brechen.
Du Funktion empfangeZeichen0() liefert nicht nur Zeichen sondern auch
die Information, ob überhaupt ein Zeichen empfangen wurde. Solange du
diese Information ignorierst wird das nichts. Du kannst nur dann ein
Zeichen an den String anhängen, wenn auch eines empfangen wurde. Und
solange du diese simple Regel misachtest, wird das auch nichts.
Mal ganz davon abgesehen, dass JEDER Aufruf von empfangeZeichen0() das
jeweils nächste Zeichen liefert.
Und ich glaube ich hab auch damals schon geschrieben: Peter liefert zu
seinen UART Funktionen eine Demo mit, in der man sich ansehen kann, wie
die Funktionen zu benutzen sind. Im speziellen, wie empfangeZeichen0 zu
benutzen ist. Diese empfangeString0 ist auf jeden Fall grober Mist. Egal
ob du sie selber geschrieben hast, oder der bei dem du sie geklaut hast.
Vom Fleury Peter stammt sie auf jeden Fall nicht.