Aaa tu mnie masz, faktycznie nie trzeba kasować - mea culpa
To była dobra wiadomość... zła jest taka, że nie mam innych pomysłów
Tzn. coś mi nie pasuje w buforze kołowym. Chyba za bardzo chciałeś uprościć z tym przekazywaniem bufora bezpośrednio do puts - ale mogę się mylić bo tak skoro świt to ciężko się myśli
Po resecie procka bufory Rx i Tx są wyzerowane, więc
USART_Puts( USART1, UART_RxBuf ); od razu wraca.
Przychodzi jakiś znak - dajmy na to 'x'. Odpala się przerwanie od odbioru i dzieje się coś takiego (pominąłem to co nie ważne):
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czyli bufor wygląda mniej więcej tak: RxBuf = {0, 'x', 0, 0, 0, 0... };
Przerwanie się kończy, wracamy do pętli głównej - odpala się
USART_Puts( USART1, UART_RxBuf ); i... i od razu wraca bo
UART_RxBuf wskazuje na początek bufora - czyli na 0; odebrany znak jest na kolejnej pozycji.
To by tłumaczyło czemu nie działa, chyba że po drodze coś zgubiłem