Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

STM32F4 - DISCOVERY - identifier "GPIO_Mode_Out_PP" is undefined

nightwissh 18 Lis 2012 14:08 3297 7
  • #1 18 Lis 2012 14:08
    nightwissh
    Poziom 7  

    Witam, by zaznajomić się z uC wybrałem zestaw STM Discovery na Cortex M4, zainstalowałem MDK-ARM Keil uVision 4.60. Chciałem przerobić program demo, tak by naciśnięciu przycisku USER zapalały się LED'y. Takie o proste na początek. Przy kompilacji wyskoczyły mi dwa błędy:

    error: #20: identifier "GPIO_Mode_Out_PP" is undefined
    error: #20: identifier "GPIO_Mode_IN_FLOATING" is undefined

    Kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Biblioteki, które mam dołączone:
    STM32F4 - DISCOVERY - identifier "GPIO_Mode_Out_PP" is undefined

    W książce z której korzystam "Mikrokontrolery STM32 w praktyce" kod jest praktycznie identyczny.
    Pytanie: co powoduje ten błąd? Co robię źle?
    Proszę o pomoc i z góry dziękuję.

    0 7
  • #2 18 Lis 2012 14:31
    stanleysts
    Poziom 27  

    Tamte kody nie są chyba na M4, poprostu nie widzi kompilator co to są za tryby, polecam zobaczyc sobie główny plik biblioteczny tej biblioteki od ST jakie tam są dostępne tryby.

    0
  • #3 18 Lis 2012 14:41
    nightwissh
    Poziom 7  

    To "How to use" z biblioteki stm32f4xx_gpio.c:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Czyli teoretycznie tak jak jest w książce, więc ja to źle implementuję do GPIO_InitStructure.GPIO_Mode czy co się dzieje?

    0
  • #4 18 Lis 2012 14:48
    stanleysts
    Poziom 27  

    Nie wiem co masz w pliku main.h zaincludowane, ale pewnie brakuje Ci plików zawierających definicje tych trybów.

    0
  • #5 18 Lis 2012 16:49
    Łukasz6
    Poziom 16  

    no dokładnie stm32F4xx_gpio.h brak Ci w projekcie;

    0
  • #6 18 Lis 2012 21:10
    nightwissh
    Poziom 7  

    z tego co widzę to mam pod main.c podpięte stm32f4xx_gpio.h
    STM32F4 - DISCOVERY - identifier "GPIO_Mode_Out_PP" is undefined

    Wpisanie do kodu

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Nic nie zmieniło

    Dodaję jeszcze kod z main.h
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #7 18 Lis 2012 21:15
    stanleysts
    Poziom 27  

    te dane nie znajdują się w pliku gpio_h, tylko w pliku nagłówkowym całego procesora, nie pamiętam jak się nazywa ale jakoś stmf4....h

    0
  • #8 18 Lis 2012 22:03
    nightwissh
    Poziom 7  

    Kod: c
    Zaloguj się, aby zobaczyć kod


    z tego co rozumiem to mam tylko rejestr PUPDR - GPIO port pull-up/pull-down register

    jak dodać resztę?

    Dodano po 17 [minuty]:

    Także problem rozwiązałem sam metodą prób i błędów. Wszystko było w porządku, poza deklaracją push-pull'a i floating :D Prawidłowy kod main.c dla potomności:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    1