Skocz do zawartości
Komentator

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

Pomocna odpowiedź

Hej!

Mam problem z labelami CubeMX'a. Jeżeli wygeneruję jakieś, to Cube co prawda robi plik "mxconstants.h" i wszystko tam jest, ale nie dodaje się w main.h automatycznie include do owego pliku, a jak sam wpiszę: #include "mxconstants.h", to kompilator i tak nie widzi tych define'ów.

Podobnie jest z ADC - po wygenerowaniu przez CubeMX'a kompilator nie widzi żadnych symboli, np. ADC_EOC_SINGLE_CONV, ADC_RESOLUTION_12B, etc. Robiłem wszystko dokładnie tak, jak w kursie napisano!

Bardzo proszę o pomoc,
Robert.

Robercie, czy po wygenerowaniu nowego kodu dokonujesz operacji Clean oraz Index rebuild ?

Udostępnij ten post


Link to post
Share on other sites

Tak, robiłem to i wiele innych rzeczy.

Trochę jest to takie wszystko niedeterministyczne 😃

Dziś wszystko zadziałało bez problemu.

Udostępnij ten post


Link to post
Share on other sites

Mimo istnienia elementów RC w obwodzie klawisza "User" u mnie daje się odczuć drgania styków.

Zastanawiam się jak najlepiej rozwiązać debouncing. Z tego co widzę flaga przerwania jest kasowana przed wywołaniem funkcji callback. Modyfikować pliki biblioteczne, czy da się temu zaradzić we własnych plikach?

Udostępnij ten post


Link to post
Share on other sites

Mam nadzieję, że ktoś to jeszcze przeczyta 🙂

Trafiłem na problem:

kiedy dodaję do już istniejącego projektu nowe funkcje (UART) to SW4STM nie rozpoznaje elementów struktur je opisujących. Np.:

UART_HandleTypeDef huart5;

mam komunikat, że "Type 'UART_HandleTypeDef' could not be resolved"

Jakieś pomysły?

Udostępnij ten post


Link to post
Share on other sites
Mam nadzieję, że ktoś to jeszcze przeczyta 🙂

Trafiłem na problem:

kiedy dodaję do już istniejącego projektu nowe funkcje (UART) to SW4STM nie rozpoznaje elementów struktur je opisujących. Np.:

UART_HandleTypeDef huart5;

mam komunikat, że "Type 'UART_HandleTypeDef' could not be resolved"

Jakieś pomysły?

Cześć!

Jeśli dobrze wyczuwam problem, to przyczyną prawdopodobnie jest nie wykrycie jeszcze niektórych zaktualizowanych plików.

Spróbuj wyczyścić projekt oraz przebudować index.

Project -> Clean

Project -> Index -> Rebuild

Pozdrawiam

Bartek

Udostępnij ten post


Link to post
Share on other sites

Cześć, mam problem podobny do paru poprzedników z tematu.

Realizując zadanie dodatkowe napisałem kod, który powinien realizować zapalanie i gaszenie kolejnych diod przy wciskaniu przycisku. Co prawda diody się zapalają i gaszą po kolei, jednak przez drgania styków jest to ciężko zauważalne, tzn. na każde wciśnięcie przycisku przez drgania diody zapalają się i gaszą wiele razy, zupełnie inaczej niż na zamieszonym do kursu filmiku. Początkowo myślałem, że to wina kodu jednak jest on analogiczny do kodu zamieszczonego w pliku z zadaniem domowym. Aby mieć pewność, że wina nie leży po stronie kodu inicjującego funkcję przerwania, skopiowałem ten kod i dalej to samo. Czy ktoś wie jak rozwiązać ten problem?

Z góry dziękuję za odpowiedź.

Udostępnij ten post


Link to post
Share on other sites

Dzień dobry,
Mam płytkę STM32F401C i wszystko robiłem według instrukcji ale nie wiem dlaczego przy budowaniu pojawia mi się następujący błąd:

make: *** [Drivers/STM32F4xx_HAL_Driver/stm32f4xx_hal.o] Error 1

Jak sprawdziłem katalog STM32Fxx_HAL_Driver to rzeczywiście nie ma tam tego sterownika tylko nie wiem dlaczego.

Z góry dziękuję za pomoc.

Udostępnij ten post


Link to post
Share on other sites

Dzień dobry,

dlaczego wybierany mikrokontroler to STM32F411VCT6, a nie STM32F411VET6, jak wskazuje napis na obudowie mikrokontrolera? Na tym etapie nie jest to takie ważne który z tych dwóch wybierzemy?

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites

Witam,

Swietny kurs!

Mam taki problem: kiedy buduje projeckt 01_GPIO to pojawiaja sie dwa bledy:

make: *** [Drivers/STM32F4xx_HAL_Driver/stm32f4xx_hal.o] Error 2

recipe for target 'Drivers/STM32F4xx_HAL_Driver/stm32f4xx_hal.o' failed

Wydruk z konsoli [CDT Build console [01_GPIO]]:

13:34:58 **** Build of configuration Debug for project 01_GPIO ****

make all

Building file: /home/konrad/ARM_Toolchain/STM32_worksapce/01_GPIO/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c

Invoking: MCU GCC Compiler

/home/konrad/ARM_Toolchain/STM32_worksapce/01_GPIO/SW4STM32/01_GPIO/Debug

arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -DUSE_HAL_DRIVER -DSTM32F411xE -I"/home/konrad/ARM_Toolchain/STM32_worksapce/01_GPIO/Inc" -I"/home/konrad/ARM_Toolchain/STM32_worksapce/01_GPIO/Drivers/STM32F4xx_HAL_Driver/Inc" -I"/home/konrad/ARM_Toolchain/STM32_worksapce/01_GPIO/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy" -I"/home/konrad/ARM_Toolchain/STM32_worksapce/01_GPIO/Drivers/CMSIS/Device/ST/STM32F4xx/Include" -I"/home/konrad/ARM_Toolchain/STM32_worksapce/01_GPIO/Drivers/CMSIS/Include" -Os -g3 -Wall -fmessage-length=0 -ffunction-sections -c -fmessage-length=0 -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" "/home/konrad/ARM_Toolchain/STM32_worksapce/01_GPIO/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c"

/bin/sh: 1: Syntax error: "(" unexpected

make: *** [Drivers/STM32F4xx_HAL_Driver/stm32f4xx_hal.o] Error 2

Drivers/STM32F4xx_HAL_Driver/subdir.mk:57: recipe for target 'Drivers/STM32F4xx_HAL_Driver/stm32f4xx_hal.o' failed

13:34:58 Build Finished (took 144ms)

Czy ktos wiec jaka jest przyczyna?

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites
Dzień dobry,

Mam płytkę STM32F401C i wszystko robiłem według instrukcji ale nie wiem dlaczego przy budowaniu pojawia mi się następujący błąd:

make: *** [Drivers/STM32F4xx_HAL_Driver/stm32f4xx_hal.o] Error 1

Jak sprawdziłem katalog STM32Fxx_HAL_Driver to rzeczywiście nie ma tam tego sterownika tylko nie wiem dlaczego.

Z góry dziękuję za pomoc.

Cześć!

Niestety to jest błąd po stronie Workbencha - czasem zdarzy mu się wygenerować nieprawidłowe zależności. Jeżeli Index Rebuild nie pomaga, zazwyczaj trzeba wygenerować projekt na nowo.

konje Twój problem wygląda tak samo.

Dzień dobry,

dlaczego wybierany mikrokontroler to STM32F411VCT6, a nie STM32F411VET6, jak wskazuje napis na obudowie mikrokontrolera? Na tym etapie nie jest to takie ważne który z tych dwóch wybierzemy?

Pozdrawiam

Dzięki za zwrócenie uwagi! Jest to oczywiście błąd który poprawimy.

Udostępnij ten post


Link to post
Share on other sites
Dzień dobry,

dlaczego wybierany mikrokontroler to STM32F411VCT6, a nie STM32F411VET6, jak wskazuje napis na obudowie mikrokontrolera? Na tym etapie nie jest to takie ważne który z tych dwóch wybierzemy?

Pozdrawiam

Jak spojrzysz w CubeMx to roznia sie one tylko pojemnoscia flash: VCT ma 256KB a VET ma 512KB. Podejrzewam tez ze tylko VET jest montowany na discovery board a VCT sprzedawany jako osobny chip.

Pozdrawiam

[ Dodano: 20-12-2016, 11:12 ]

Dzień dobry,

Mam płytkę STM32F401C i wszystko robiłem według instrukcji ale nie wiem dlaczego przy budowaniu pojawia mi się następujący błąd:

make: *** [Drivers/STM32F4xx_HAL_Driver/stm32f4xx_hal.o] Error 1

Jak sprawdziłem katalog STM32Fxx_HAL_Driver to rzeczywiście nie ma tam tego sterownika tylko nie wiem dlaczego.

Z góry dziękuję za pomoc.

Mialem podobny problem (uzywam Ubuntu) i podejrzewam ze jak spojrzysz w konsole to bedzie tam cos takiego:

/bin/sh: 1: Syntax error: "(" unexpected 

a potem twoj error.

To jest wskazowka ze trzeba dodac do "weak" i "packed" symbols cudzyslow.

Kliknij prawym przyciskiem na projekcie i wybierz:

Properties >> C/C++ Build >> Settings >> Tools Settings tab >> MCU GCC Compiler >> Preprocessor

Tam w okienku "Defined Symbols" dodaj cudzyslowie do:

__weak='__attribute__((weak))'
__packed='__attribute__((__packed__))'

U mnie to rozwiazalo problem. Uzytkownicy OSX tez mieli ten problem:

https://community.st.com/thread/34353-stm32cubemx-4180-error-in-cproject-on-osx

Udostępnij ten post


Link to post
Share on other sites
Cześć, mam problem podobny do paru poprzedników z tematu.

Realizując zadanie dodatkowe napisałem kod, który powinien realizować zapalanie i gaszenie kolejnych diod przy wciskaniu przycisku. Co prawda diody się zapalają i gaszą po kolei, jednak przez drgania styków jest to ciężko zauważalne, tzn. na każde wciśnięcie przycisku przez drgania diody zapalają się i gaszą wiele razy, zupełnie inaczej niż na zamieszonym do kursu filmiku. Początkowo myślałem, że to wina kodu jednak jest on analogiczny do kodu zamieszczonego w pliku z zadaniem domowym. Aby mieć pewność, że wina nie leży po stronie kodu inicjującego funkcję przerwania, skopiowałem ten kod i dalej to samo. Czy ktoś wie jak rozwiązać ten problem?

Z góry dziękuję za odpowiedź.

Czesc,

Z kodem jest wszystko ok tylko brakuje sekcji do tzw. debouncing (odbicia?) przycisku. Wynika to z wlasciwosci fizycznych kontaktu. Dobrze jest to wytlumaczone tu:

http://whatis.techtarget.com/definition/debouncing

Albo tez jest tego pelno na youtube:

Udostępnij ten post


Link to post
Share on other sites

Hej

A co jeśli nie instalowałem żadnego pluginu do eclipsa tylko sam STM32CubeMX - czy już przy generowaniu kodu muszę Toolchain/IDE zmienić na SW4STM32 a potem instalować workbencha ???

Nic nie piszesz na ten temat :/

Udostępnij ten post


Link to post
Share on other sites
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!

Wybaczcie, ale chyba potrzebuję łopatologicznego wyjaśnienia...

Gdzie na stronie ST znajdę ten plik? Coś pobrałem, ale w paczce (.zip) nie ma pliku .jar więc nie da się dodać biblioteki...

Gdzie robię błąd?

Udostępnij ten post


Link to post
Share on other sites

Witam. Mam problem z pobraniem pakietów GPIO. Pobieranie kończy się błędem. Jako że zaczynam dopiero zabawę z STM prosiłbym o wskazówkę co z tym zrobić. Szukałem w internecie ale nie znalazłem wersji której potrzebuję czyli: STM32Cube FW_F4 V1.13.1

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...