Moim zdaniem po pierwsze powinieneś wykorzystać klasę Thread, czyli rozbudować program o wielowątkowość. Wystarczy jeden wątek odpowiedzialny za pobieranie danych i ich wyświetlanie oraz główny wątek który odpowiada za wszystkie pozostałe funkcje twojego programu. Możesz też trochę inaczej przesyłać dane z mikrokontrolera do PC, zakładasz sobie ramkę danych powiedzmy x,x,x /n i taką ramkę wysyłasz:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
W twoim programie wykorzystujesz metodę klasy serialPort ReadTo("/n"). Następnie odebrane dane sobie formujesz za pomocą metody Split klasy string.
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Teraz dostęp masz do każdego elementu ramki danych. Istotne jest też wykonanie "synchronizacji" danych odbieranych. W przypadku gdy włączysz program w chwili w której został już wysłany np. pierwszy element ramki to wywali Ci błąd, dlatego najlepiej zrobić pierwszy pusty odbiór.
Nie rozumiem tego fragmentu. Jeżeli chcesz zdefiniować port COM to możesz użyć metody GetPortNames (o ile się nie mylę) i zwróci ci ona jako string podłączone porty COM. Następnie możesz je przypisać do jakieś zmiennej.
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.