Skocz do zawartości
Komentator

Kurs STM32 F4 - #6 - Liczniki, konfiguracja zegara, debugger

Pomocna odpowiedź

html_mig_img
Praca mikrokontrolera często musi być zależna od czasu. Należy w tym celu wygenerować sygnał, który będzie podstawą taktowania systemu.W tym odcinku opiszę podstawową konfigurację liczników. Przejdziemy również przez ustawiania zegarów. Na koniec użyjemy debuggera, dzięki czemu możliwe będzie m.in. wgrywanie programu z poziomu IDE.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Udostępnij ten post


Link to post
Share on other sites

Cześć, dzięki za następna część kursu !

Świetna lektura!

Ale ... w miarę czytania rośnie apetyt...

Czy można prosić o rozwinięcie tego tematu o :

RTC (rozumiem,ze trzeba najpierw wlutować rezonator 32k)

PWM

dekodowanie enkoderów obrotowych

dekodowanie czujników Halla

Myślę,że pozostali czytelnicy tego kursu zgadzają się z moją pokorna prośbą ?

__________

Komentarz dodany przez: Treker

Post scaliłem z właściwym tematem.

Udostępnij ten post


Link to post
Share on other sites

beroduar, zarówno PWM, jak i enkodery pojawią się w dalszej części kursu.

Pozostałe tematy są na liście zagadnień do poruszenia podczas ewentualnej kontynuacji kursu 🙂

Udostępnij ten post


Link to post
Share on other sites

Kolejna świetna dawka wiedzy.

Nie mogę już się doczekać kursu o PWM i o sterowaniu Servami.

Odnośnie STM32 F4 myślicie, że dobrym pomysłem jest zrobienie na nim Humanoida czy może lepiej na AVR+ Serwokontroler ? 😉

Z góry dziękuję za opnie 😃

Udostępnij ten post


Link to post
Share on other sites

Witam dziękuje za kurs . Mam taki problem u mnie nie mogę wybrać

Debug As > Ac6 STM32 C/C++ Application.

ponieważ nie ma takiej opcji , można jakoś dodać ja ręcznie dziekuje

Udostępnij ten post


Link to post
Share on other sites

gufim, czy skonfigurowałeś środowisko i stworzyłeś projekt dokładnie tak, jak opisane było to w poprzednich częściach kursu?

Udostępnij ten post


Link to post
Share on other sites
Odnośnie STM32 F4 myślicie, że dobrym pomysłem jest zrobienie na nim Humanoida czy może lepiej na AVR+ Serwokontroler ? 😉

Humanoida nigdy nie budowałem, aczkolwiek stałem przed taką decyzją jak Ty przy budowie Micromouse'a. Wybrałem mikrokontrolery AVR i bardzo tego żałuję, ponieważ przyblokowało to mój rozwój z STMami oraz sprawiło niemało problemów z samym robotem, których uniknąłbym dzięki zastosowaniu STM32.

Co do Humanoida, jeśli chcesz mogę spróbować poprosić mojego dobrego kolegę z koła, autora konstrukcji, która widnieje na okładce fotorelacji z zawodów Roboxy 2016, o dogłębniejszą odpowiedź na Twoje pytanie 🙂

[ Dodano: 23-05-2016, 14:23 ]

Witam dziękuje za kurs . Mam taki problem u mnie nie mogę wybrać

Debug As > Ac6 STM32 C/C++ Application.

ponieważ nie ma takiej opcji , można jakoś dodać ja ręcznie dziekuje

Czy mógłbyś sprecyzować której konkretnie opcji nie ma? Najwygodniej byłoby gdybyś wstawił zrzut ekranu przedstawiający miejsce, w którym brakuje niezbędnych opcji.

Udostępnij ten post


Link to post
Share on other sites

Brakuje tego

Ac6 STM32 C/C++ Application.

Jest tylko to

Local C/C++ Application.

Udostępnij ten post


Link to post
Share on other sites

Wygląda to tak, jakbyś nie zainstalował dodatków do SW4STM32. Może spróbuj usunąć całkowicie pliki Eclipse i wykonać wszystko od nowa? Możesz również spróbować zainstalować środowisko wykorzystując gotowy instalator, dostępny na openstm32 (musisz być zalogowany, aby mieć dostęp do sekcji pobierania).

Udostępnij ten post


Link to post
Share on other sites

Zrobiłem format dysku zainstalowałem od nowa Win10 i resztę tak samo wszystko jak w poradniku i nadal to samo , spróbuje jeszcze z tym openstm32

Udostępnij ten post


Link to post
Share on other sites

Cześć,
po pierwsze dzięki za szczegółowy, zrozumiale napisany kurs:)

Mam problem z wgraniem programu bezpośrednio z Eclipsa i dostaniem się do debuggera. U mnie błąd wygląda tak:

Zgodnie z zaleceniami terminuję i zamykam procesy, a błąd pojawia się przy każdej próbie wgrania programu. Wgrywanie przez ST-LINK Utility działa bez problemu.

Macie jakieś pomysły?

Udostępnij ten post


Link to post
Share on other sites

Run -> Debug Configurations -> Ac6 STM Debugging -> .elf -> Zakładka: Debugger -> Script: Manual spec -> Debug device: ST-LinkV2-1 -> Debug interface: SWD -> Apply -> Debug

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Osobiście miałem problem z uruchomieniem przerwania na TIM10, funkcja

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

Po prostu nie działała, zauważyłem dopiero po czasie że STM32CubeMX wygenerował mi w plikach src plik o nazwie: ,,stm32f4xx_it.c" W tym właśnie pliku znajdowała się wygenerowana funkcja o nazwie: ,,void TIM1_UP_TIM10_IRQHandler(void)" Która dopiero zaczęła działać poprawnie, może w którejś aktualizacji STM32CubeMX pojawiła się ta zmiana, ale mi nie działał sposób z artykułu. Może komuś pomogą moje poszukiwania.

Udostępnij ten post


Link to post
Share on other sites

Hej,

Specjalnie założyłem konto, żeby poinformować o kolejnym problemie na który natrafiłem. Mianowicie po odpaleniu debugera program nie mógł przeskoczyć żadnej z funkcji inicjalizujących peryferium. Objawiało się to tym, że PC stał na tej funkcji i pomimo operacji run/stop on dalej tam siedział. Nie pomagało przeskoczenie funkcji poprze "run over"- wtedy w konsoli pojawiał się błąd w postaci: "Info : halted: PC: 0x08000f4c" (adres oczywiście może być różny). Na początku myślałem, że to coś związanego z SysTickiem i przerwaniami, potem kombinowałem z WDT- oczywiście cały czas szukałem w internecie informacji których nie było na żadnym forum... I w sumie dalej rozwiązania nie ma. Znalazłem tylko ten temat:

http://www.openstm32.org/forumthread943#tiki-top

w którym autor mówi o tym, że funkcje inicjalizujące są zadeklarowane jako inline i coś się z tym pierdzieli. Rozwiązaniem jest wyłączenie optymalizacji:

PPM na projekt -> Properties -> C/C++ build -> Settings -> MCU/GCC Compiler -> Optimization -> Optimization Level None

W moim przypadku pomogło, ale oczywiście jest to obejście problemu, a nie jego wyeliminowanie

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...