Witam.
Mam dwa układy komunikujące się ze sobą za pomocą RS485. Jeden wysyła dane, drugi odbiera i wyświetla na lcd. Napisałem kod ale na lcd nie wyświetla się to co powinno. Proszę o sprawdzenie.
A co się wyświetla? W wielu przypadkach po tym co otrzymujesz można się domyśleć, gdzie tkwi błąd. Na szybko widzę co najmniej jeden - funkcja odbioru odbiera bajt, wyświetla go na LCD i czeka 300ms na kolejny po czym kasuje LCD. Jeśli nadajesz więcej niż 2 bajty to je gubisz, bo odbiornik ma bufor tylko na 2 bajty. Zrób odbiór w przerwaniach.
Po pierwsze jak odbierasz w przerwaniu RXC to po co sprawdzasz flagę czy jest odebrany bajt? Wiadomo, że jak jest przerwanie to coś czeka w buforze odbiornika.
Co to timeout to wykorzystaj timer. Jego licznik jest niezależnie inkrementowany, można nawet wykorzystać przepełnienie i przerwanie z tym związane do zresetowania maszyny stanu związanej z USART.