Ankieta: Jaki system operacyjnym preferujesz
Nie posiadasz uprawnień, aby oddać głos w tej ankiecie.
Windows
60.78%
31 60.78%
Linux
31.37%
16 31.37%
MAC/OS
7.84%
4 7.84%
Inny
0%
0 0%
Razem 51 głosów 100%
*) odpowiedź wybrana przez Ciebie [Wyniki ankiety]

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie ARM, nauka, środowiska programistyczne IDE
(17-07-2016, 18:52)SQ8MVY napisał(a):
(17-07-2016, 14:08)SP6LUN napisał(a): Z002 - błędy, prawdopodobnie nieco inna składnia asemblera.

A coś jaśniej ? Z002 przenosiłeś na embed ?

Tak.
Faktycznie, wygląda na to, że tylko proste projekty da się bezproblemowo przenosić między mbed a EmBitz.
Dziękuję za wskazówki do konwersji elf na bin.
Praktycznie mam w tej chwili "uruchomione"
stm32F429 disc1 pod EmBitz i mbed
stm32mini pod EmBitz - tu procesor tylko stm32f103 ale 2x większy LCD

Andrzej
Odpowiedz
(17-07-2016, 22:44)SP6LUN napisał(a): Praktycznie mam w tej chwili "uruchomione"
stm32F429 disc1 pod EmBitz i mbed
stm32mini pod EmBitz - tu procesor tylko stm32f103 ale 2x większy LCD

Więc zabawa się zaczęła....
73 Paweł
Odpowiedz
Czy sprawdzał ktoś część odbiorczą z Z002?

Dokładnie chodzi o to, że znak znajduje się w buforze RX, ale nie jest ustawiana flaga, że pojawiła się wartość w rejestrze USART1->DR.
Odpowiedz
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

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ł
Odpowiedz
Dzięki za odpowiedź, jeszcze popatrzę na to uważniej, wartość w rejestrze USART->DR jest taka sama jak wysłam z PC.
Odpowiedz
Tu jest jeszcze jednen problem, z odczytem wartości rejestrów USART w debuggerze.

Wspomniany bit RXNE (RX Not Empty) jest kasowany sprzętowo (programowo też można go skasować poprzez wpisanie 0 do tego rejestru) poprzez odczyt danej z rejestru DR. Więc jak debugger podaje Ci prawidłową wartość rejestru DR, to ta wartość musiała być fizycznie odczytana przez debugger. Jeśli tak, to i flaga RXNE automatycznie zostaje niezauważalnie skasowana.

Trzeba być bardzo uważnym, aby zaobserwować zmianę flagi RXNE, bo widać ją tylko przez 1 odczyt rejestrów USART-a.

Zawartość rejestru DR przez odczyt nie jest kasowana, więc widnieje cały czas w podglądzie rejestrów USART-a. Dopiero jak nadejdzie portem szeregowym nowa dana, to zostaje ona przepisana z rejestru szeregowego (niewidocznego) do rejestru DR, zastępując poptrzednią wartość...

Nadal nie podałeś nic na temat tego, czy przykład w normalnym trybie (bez debugowania) Ci działa prawidłowo, jakie firmware masz obecnie w zintegrowanym programatorze, oraz jaką wersję płytki Discovery posiadasz. Są to kluczowe informacje, bez których można tylko gdybać....
73 Paweł
Odpowiedz
Ok, dzięki za pomoc, pomęczę się jeszcze trochę sam, jak nie będzie wyników to będziemy się martwić, chodzi o to że program nie wchodzi w warunek (nie pamiętam z pamięci) funkcji usart1_getc() i return zwraca cały czas wartość zero, ale póki co się nie poddaję Smile.
Odpowiedz
Ok, jestem do dyspozycji ..Smile

A tak z ciekawości, które archiwum pobrałeś ? Z002.zip, czy to poprawione Z002v1.zip..

73 Paweł
Odpowiedz
(06-07-2016, 11:07)SP6IFN napisał(a): A mnie dodatkowo interesuje też co jest na tej płytce ...

Krótki opis modułu STM32F429-DISCO z Elektroniki Praktycznej w załączniku.




Załączone pliki
.pdf   EP_DiscoveryF429.pdf (Rozmiar: 1.47 MB / Pobrań: 1,000)
73 Adam
Odpowiedz
Dziękuję za załącznik jw.
Nikt o nic nie pyta, Nikt się nie chwali, to ja sobie pozwolę napisać. Zadanie Z002 zostało przerobione, temat zrozumiałem, program jest wgrany do płytki uruchomieniowej i prawidłowo współpracuje z terminalem PUTTY. Nie obyło się bez problemów, ale dzięki Kolegom Piotrowi i Pawłowi, wszystkie problemy zostały rozwiązane. Komunikujemy się przy wykorzystaniu komunikatora qTox, warto go zainstalować, gdyż bezpośredni kontakt w sprawie pomocy jest nieoceniony.
Rysio!
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości