Skocz do zawartości

Kurs STM32 F4 - #4 - Pierwszy projekt, GPIO, przerwania


Pomocna odpowiedź

Napisano
html_mig_img
Stworzenie programu dla mikrokontrolera STM32, wymaga tylko kilkunastu kliknięć! W tej części kursu skonfigurujemy projekt wykorzystując do tego generator kodu CubeMX.Poznamy podstawowe funkcje do obsługi portów GPIO. Sprawdzimy też jak w praktyce wygląda obsługa przerwań zewnętrznych.

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.

Witam,
Przy pierwszym generowaniu kodu w cube3d ściągane są dane do projektu, 310MB i zawsze zatrzymuje się przy 39,1MB. Sprawdzałem na róznych kompach i zawsze tak.

jkarczew, a sprawdzałeś korzystając z innej sieci? U mnie, podczas wczorajszego sprawdzania instrukcji przed publikacją artykułu, pobieranie nie sprawiło żadnego kłopotu.

Sprawdziłem na innej sieci ale było to samo. Ale można ten plik sciągnąć bezpośrednio ze strony stm i zainstalować wybierając nierozpakowany plik w help/install new libraries i kliknąć na from local i wskazać plik .zip.

  • Lubię! 1
Pierwsze pytanie: Jak skonfigurować eclipse aby bezpośrednio programował układ, a nie przez ST-Linka?

Nie wiem czy dobrze zrozumiałem Twoje pytanie, ale to o czym mówisz nie jest możliwe (a przynajmniej ja nie wiem o żadnym przystępnym sposobie osiągnięcia tego).

Mikrokontrolery STM32 mogą być programowane na dwa sposoby: za pomocą programatora (to co robimy teraz), lub z wykorzystaniem bootloadera. Nie jest to kwestia konfiguracji środowiska programistycznego, ale napisania odpowiedniego programu startowego (bootloadera) i wprowadzenia mikrokontrolera w odpowiedni tryb. Zagadnienie bardziej złożone, które zostanie opisane w jednym z kolejnych artykułów.

Podsumowując: nie da się po prostu podłączyć mikrokontrolera bezpośrednio do komputera i zaprogramować "ot tak" z Eclipse bez użycia dodatkowego sprzętu, bootloadera czy zewnętrznego oprogramowania.

Jedno słowo, a wprowadziło nieporozumienie 😃

Chodziło mi o ST-Link Utility.

Zdecydowanie wygodniej byłoby uruchamiać programowanie z poziomu eclipse (przycisk Run albo Debug) zamiast używania osobnej aplikacji.

Da się to zrobić bo w kursie z bibliotekami STD jest to opisane ale przy projekcie z Cube metoda z tamtego kursu nie działa.

Jedno słowo, a wprowadziło nieporozumienie 😃

Chodziło mi o ST-Link Utility.

Zdecydowanie wygodniej byłoby uruchamiać programowanie z poziomu eclipse (przycisk Run albo Debug) zamiast używania osobnej aplikacji.

Da się to zrobić bo w kursie z bibliotekami STD jest to opisane ale przy projekcie z Cube metoda z tamtego kursu nie działa.

Ojej, no to faktycznie wprowadziłeś zamieszanie, bo nie dość że spytałeś nie o to co chciałeś, to jeszcze zapomniałeś dodać na końcu "Utility", przez co Twoje pytanie dotyczyło programowania procka BEZ programatora bezpośrednio z IDE.

Tak, z Eclipse jak najbardziej można wgrywać i debugować program na mikrokontroler z wykorzystaniem programatora ST-Link (bez użycia ST-Link Utilty). W jednym z najbliższych artykułów będzie do dokładnie opisane 🙂

[ Dodano: 27-04-2016, 21:20 ]

Sprawdziłem na innej sieci ale było to samo. Ale można ten plik sciągnąć bezpośrednio ze strony stm i zainstalować wybierając nierozpakowany plik w help/install new libraries i kliknąć na from local i wskazać plik .zip.

Dziwny problem, przetestowałem ten mechanizm na prawie 100 komputerach i akurat tego problemu nie spotkałem ani razu. Fajnie że znalazłeś obejście.

Jak to (podobno) mówią w CallCenter, "Przepraszam Pana bardzo, ale ja na prawdę muszę zadać to pytanie. Czy próbował Pan wyłączyć i włączyć ponownie? (W tym wypadku przeinstalować na nowo Cube'a?)"

Dziwny problem, przetestowałem ten mechanizm na prawie 100 komputerach i akurat tego problemu nie spotkałem ani razu. Fajnie że znalazłeś obejście.

Jak to (podobno) mówią w CallCenter, "Przepraszam Pana bardzo, ale ja na prawdę muszę zadać to pytanie. Czy próbował Pan wyłączyć i włączyć ponownie? (W tym wypadku przeinstalować na nowo Cube'a?)"

Czasami są problemy których inni nie doświadczają, ale bardzo rzadko trafia na mnie 🙂 tym razem trafiło. A zawsze się dziwie jak ludzie opisują problemy które im się przytrafiają w trakcie prostej instalacji, myśle sobie "to chyba niemożliwe- u mnie było dobrze" 🙂.

Chyba wiem dlaczego- plik jest już w trakcie ściągania rozpakowywany i instalowany i tu mógł zawieść winrar. Odinstalować nie próbowałem bo problem był na dwóch kompach dokładnie taki sam.

Witam,

Po generacji kodu w Cube i zaimportowaniu go do Eclipe mam od razu 3 błędy. Załączam zrzut ekranu. Czy ktoś miał podobny problem? Jak go rozwiązać? Jedynym sposobem który do tej pory znalazłem jest wpisanie wartości na sztywno (SysTick_IRQn: -1, EXTI4_15_IRQn: 7).

U mnie to samo z błędem

Symbol 'SysTick_IRQn' could not be resolved main.c /01_GPIO/Src line 129

ale o dziwo program da się skompilować i po wgraniu do procka działa.

Gdy wcisnę Ctrl+ lewy p. myszy na 'SysTick_IRQn' to pojawia się poniższa ramka.

Ale dlaczego mamy błąd i jak się go pozbyć??

U mnie to samo z błędem

Symbol 'SysTick_IRQn' could not be resolved main.c /01_GPIO/Src line 129

Proponuje w Cube w "Project settings" Toolchain/IDE i wyborze SW4STM32 ODZNACZYĆ opcje "generate under root".

Czasami są problemy których inni nie doświadczają, ale bardzo rzadko trafia na mnie 🙂 tym razem trafiło. A zawsze się dziwie jak ludzie opisują problemy które im się przytrafiają w trakcie prostej instalacji, myśle sobie "to chyba niemożliwe- u mnie było dobrze" 🙂.

Chyba wiem dlaczego- plik jest już w trakcie ściągania rozpakowywany i instalowany i tu mógł zawieść winrar. Odinstalować nie próbowałem bo problem był na dwóch kompach dokładnie taki sam.

Miałam ten sam problem, 39.1MB i stop, odinstalowanie Cube'a nic nie dało, ale sposób z samodzielną instalacją pliku .zip zadziałał 🙂 Dzięki!

Co zrobić, żeby pod 'młotkiem' działała opcja Release? Ustawiam preset dla release z predefiniowanych dla AC6 ale mam błędy (to dla płytki discovery, dla gołego uC jest to samo):

19:08:04 **** Incremental Build of configuration rel_1 for project disco_1 ****
make all 
'Building file: C:/work_swstm/disco_1/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c'
'Invoking: MCU GCC Compiler'
C:\work_swstm\disco_1\SW4STM32\disco_1\rel_1
arm-none-eabi-gcc -mthumb -mfloat-abi=soft -O3 -Wall -fmessage-length=0 -ffunction-sections -c -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/stm32f4xx_hal.d" -MT"Drivers/STM32F4xx_HAL_Driver/stm32f4xx_hal.o" -o "Drivers/STM32F4xx_HAL_Driver/stm32f4xx_hal.o" "C:/work_swstm/disco_1/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c"
C:/work_swstm/disco_1/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:54:27: fatal error: stm32f4xx_hal.h: No such file or directory
compilation terminated.
make: *** [Drivers/STM32F4xx_HAL_Driver/stm32f4xx_hal.o] Error 1

19:08:05 Build Finished (took 343ms)

Witam.

Mnie przy pierwszej części

(zaświecenie diody) pojawia się błąd w linijce

HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);

jak zakomentuję to dalej leci ok i kompiluje się.

Problem znika kiedy przechodzę do części związanej z przerwaniami.

Mam wrażenie, że w pierwszej części jakiegoś kroku konfiguracyjnego brakuje,
który ustawi ten SysTick w NVIC.

Pozdrawiam

Zuk

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...