Cześć,
Tak działa dobrze. Jak masz w programatorze firmware J-Linka to zmień do tego przykładu na ST-Linka.
J-Link ma strasznego babola, objawiającego się tym, że nie przesyła prawidłowych danych z komputera do STM-a
A sprawdź też pozostałe flagi dotyczące błędów np. błąd ramki FE. Jak się ustawiają, to prawdopodobnie RXNE się nie ustawi, bo wartość w rejestrze odbiorczym jest błędna.
Przy okazji zauważyłem jeszcze jedną rzecz, która prawdopodobnie mi się przestawiła jak porządkowałem kolejność ustawiania rejestrów USART1, a tyczy się przykładu w archiwum Z002v1.
W pliku usart1.c w funkcji usart1_Init jest obecnie:
a powinno być:
Przez przypadek zamiast Pull-Up-a włączyłem Pull-Down-a. Pomimo takiej drobnostki przykład działa bezbłędnie.
Tak działa dobrze. Jak masz w programatorze firmware J-Linka to zmień do tego przykładu na ST-Linka.
J-Link ma strasznego babola, objawiającego się tym, że nie przesyła prawidłowych danych z komputera do STM-a
Cytat:znak znajduje się w buforze RX, ale nie jest ustawiana flaga, że pojawiła się wartość w rejestrze USART1->DR.
A sprawdź też pozostałe flagi dotyczące błędów np. błąd ramki FE. Jak się ustawiają, to prawdopodobnie RXNE się nie ustawi, bo wartość w rejestrze odbiorczym jest błędna.
Przy okazji zauważyłem jeszcze jedną rzecz, która prawdopodobnie mi się przestawiła jak porządkowałem kolejność ustawiania rejestrów USART1, a tyczy się przykładu w archiwum Z002v1.
W pliku usart1.c w funkcji usart1_Init jest obecnie:
Kod:
//Ustawiamy Pull-Up-a dla nóżki RX-a, aby nie wisiał w powietrzu, jak nie będzie do niczego podpięta
//Nóżka PA9 - TX jako wyjściowa domyślie jest PushPull, więc nie ma potrzeby jej konfigurować
GPIOA->PUPDR |= GPIO_PUPDR_PUPDR10_1;a powinno być:
Kod:
GPIOA->PUPDR |= GPIO_PUPDR_PUPDR10_0;Przez przypadek zamiast Pull-Up-a włączyłem Pull-Down-a. Pomimo takiej drobnostki przykład działa bezbłędnie.
73 Paweł

