Cześć wszystkim
Od jakiegoś czasu intensywnie pracuję nad komunikacją pomiędzy kilkoma AVR'ami, a PCtem. Różne rzeczy już tu na Forum omawiałem i wiele głupich błędów dzięki Wam poprawiłem
Jednakże dalej mam pewne problemy, nie zawsze transmisja działa prawidłowo i szukam przyczyny dlaczego. Nieprawidłowość polega na tym, że po prostu staje wszystko dęba i pozornie wygląda to tak, że AVR nie odpowiada na komendę wysłaną z aplikacji na PC. Jednak gdy taka sytuacja zachodzi i zamknę aplikację i przeniosę się do realterma by stamtąd wysłać rozkaz to procek zawsze odpowiada prawidłowo. Pomyślałem więc, że może przyczyna leży w moim programie na PC? Oto jak odbieram dane z portu COM:
Próbowałem użyć komendy readExisting, ale to przypisuje dane do stringa, a ja nie operuję w ASCII.
W ustawieniach kontrolki serialPort mam ReceivedBytesThreshold ustawiony na 1, a gdy zliczałem liczbę wywołań tego zdarzenia (poprzez zwiększanie zmiennej o 1) to czasem była mniejsza niż wielkość paczki danych. Skąd ta rozbieżność?
No i pytanie zasadnicze - czy prawidłowo odbieram dane w zdarzeniu czy może powinienem zrobić to inaczej? Czy jest to w ogóle możliwe, że obsługa portu COM przez visual C# może być w pewien sposób niestabilna i to rujnuje mi transmisję? Nie ukrywam jednak, że zdaje mi się, że ja robię gdzieś błąd, tylko nie wiem w którym miejscu
Proszę uprzejmie o wskazówki i pozdrawiam.
Od jakiegoś czasu intensywnie pracuję nad komunikacją pomiędzy kilkoma AVR'ami, a PCtem. Różne rzeczy już tu na Forum omawiałem i wiele głupich błędów dzięki Wam poprawiłem
Kod: C#
Próbowałem użyć komendy readExisting, ale to przypisuje dane do stringa, a ja nie operuję w ASCII.
W ustawieniach kontrolki serialPort mam ReceivedBytesThreshold ustawiony na 1, a gdy zliczałem liczbę wywołań tego zdarzenia (poprzez zwiększanie zmiennej o 1) to czasem była mniejsza niż wielkość paczki danych. Skąd ta rozbieżność?
No i pytanie zasadnicze - czy prawidłowo odbieram dane w zdarzeniu czy może powinienem zrobić to inaczej? Czy jest to w ogóle możliwe, że obsługa portu COM przez visual C# może być w pewien sposób niestabilna i to rujnuje mi transmisję? Nie ukrywam jednak, że zdaje mi się, że ja robię gdzieś błąd, tylko nie wiem w którym miejscu
Proszę uprzejmie o wskazówki i pozdrawiam.