Dane przez UART nie są wysyłane w całości, tylko fragmentami, tzn. Twoja ramka danych nie jest wysyłana od A do Z ciurkiem tylko jest podzielona na części w zależności od ilości wysyłanych pakietów. Nie mam za bardzo czasu żeby to skompilować i zobaczyć czy działa, ale proponuję Ci w takim razie utworzenie Twojej ramki danych wysyłanej w takiej postaci:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Następnie w zdarzeniu odbioru zamieniasz Metodę ReadExcisting odczytującą tylko to co zostało aktualnie wysłane przez procesor na metodę ReadLine, która będzie czytała dane czekając na pojawienie się znaku nowej linii \n i dopiero przypiszę bufor to Twojego stringa DataIn:
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wtedy możesz wyświetlać swoje dane tak jak napisałeś z wykorzystaniem znaku nowej linii:
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Możesz także spróbować zakończyć swoją ramkę danych, którą wysyłasz z procesora na znakiem nowej linii lub jakąś inną literą
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
I odbierać dane w zdarzeniu metodą ReadTo:
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wtedy możesz wyświetlać swoje dane tak jak napisałeś z wykorzystaniem znaku nowej linii:
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jeśli to nie zadziała to być może ktoś inny Ci pomoże, bo tak jak mówię nie mam obecnie czasu załączyć kompilatora