So ich hab jetzt doch ein Problem:
ich verwende folgenden Code um Daten von der seriellen zu empfangen:
Code:
void usart_gets( char* Buffer, uint8_t MaxLen )
{
uint8_t NextChar;
uint8_t StringLen = 0;
NextChar = usart_getc(); // Warte auf und empfange das nächste Zeichen
// Sammle solange Zeichen, bis:
// * entweder das String Ende Zeichen kam
// * oder das aufnehmende Array voll ist
while( NextChar != '\n' && StringLen < MaxLen - 1 )
{
*Buffer++ = NextChar;
StringLen++;
NextChar = usart_getc();
}
// Noch ein '\0' anhängen um einen Standard
// C-String daraus zu machen
*Buffer = '\0';
}
Da liest er solange Zeichen ein bis "\n" kommt.
Die Steuerung die von der ich Daten empfange sendet aber nicht ein solches Endzeichen dort hört der Datensatz einfach mit der Checksumme ihrer Daten auf. Wie kann ich das jetzt gestalten, das er mir den Datensatz einliest und ihn mir in meiner Variable daten zurück gibt.
Jetzt wartet er ja vergeblich bis mal zufällig so ein Steuerzeichen kommt
Lesezeichen