logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[C] [C][stm32] - Błąd kompilacji 'RCC_APB2Periph_GPIOB' i problem z funkcją Delay

elektronik999 18 Paź 2012 22:17 3393 17
REKLAMA
  • #1 11426591
    elektronik999
    Poziom 26  
    Posty: 1203
    Pomógł: 8
    Ocena: 85
    Witam. Dopiero zaczynam przygodę z ARM ale juz natknąłem się na problem :(. Mam płytkę stm32f0discovery. Podłączyłem wyświetlacz z Nokii 5110 oparty na sterowniku PCD8544.
    
    RST - PB1
    CE   - PB2
    DC   - PB10
    PIN  - PB11
    CLK  - PB12
    

    Napięcie zasilające wyświetlacz to 3v biorę je z płytki. (podłączenia są na płytce stykowej, sprawdzałem omomierzem czy jest dobry kontakt i wygląda na ok).
    Nie wiem czy ten wyświetlacz jest sprawny bo go dopiero co dostałem a po podpięciu samego zasilania nic sie na nim nie pojawia. Program pisze w Atollic TrueSTUDIO for ARM Lite 3.2.0. Korzystałem z tych listingów Tak u mnie wygląda definicja portów. Niestety program sie nie kompiluje bo wyskakuje mi błąd "Type 'RCC_APB2Periph_GPIOB' undeclared (first use in this function)" Kombinuje i kombinuje i nic nie mogę wymyśleć. Mam też problem z funkcją Delay, bo nie było przykładu jak taka funkcja powinna wyglądać. Co zrobić żeby to działało? Czy jest ważne do których pinów dołącza się wyświetlacz?



    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 11427358
    Krauser
    Poziom 26  
    Posty: 508
    Pomógł: 124
    Ocena: 12
    elektronik999 napisał:
    Niestety program sie nie kompiluje bo wyskakuje mi błąd "Type 'RCC_APB2Periph_GPIOB' undeclared (first use in this function)"

    Tam był przykład dla STM32F1 dlatego zmień na:
    RCC_AHBPeriph_GPIOB

    Najprościej opóźnienie realizuje się tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #3 11427876
    elektronik999
    Poziom 26  
    Posty: 1203
    Pomógł: 8
    Ocena: 85
    Program sie kompiluje, jednak nic nie zostaje wyświetlone na wyświetlaczu.


    EDIT++++++

    Posiada ktoś z Was przykład jakiegoś programu (działającego na 100%) programu z takim wyświetlaczem? Zależy mi na tym aby sprawdzić ten wyświetlacz.
  • #4 11431641
    Krauser
    Poziom 26  
    Posty: 508
    Pomógł: 124
    Ocena: 12
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Pamiętaj, że RCC_APB2PeriphClockCmd() to poprawna nazwa funkcji, ale nie dobra dla RCC_AHBPeriph_GPIOB. Raczej staraj się oprzeć sterowanie wyświetlaczem o program migania LEDem.
  • REKLAMA
  • #5 11435022
    elektronik999
    Poziom 26  
    Posty: 1203
    Pomógł: 8
    Ocena: 85
    Krauser napisał:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Pamiętaj, że RCC_APB2PeriphClockCmd() to poprawna nazwa funkcji, ale nie dobra dla RCC_AHBPeriph_GPIOB.


    Dlaczego jest nie dobra?
  • REKLAMA
  • Pomocny post
    #6 11435105
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Ja mam obsługę wyświetlacza z Nokii 3310 ale ma ten sam sterownik co Twój LCD.
    W załączniku masz przykład.
    Załączniki:
    • F0_lcd3310.zip (378.35 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #7 11435209
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    elektronik999 napisał:
    Dlaczego jest nie dobra?

    Jeśli nie widzisz różnicy między APB2 a AHB to jest dobra.

    Tak samo jak "dobre" jest coś takiego:
    SPI1->CR = RCC_CFGR_PPRE2_DIV2;
    Nie ma najmniejszych przeciwwskazań ze strony formalnej, aby tak zrobić. Inną sprawą jest sens takiej operacji...

    4\/3!!
  • #8 11436492
    elektronik999
    Poziom 26  
    Posty: 1203
    Pomógł: 8
    Ocena: 85
    mrh napisał:
    Ja mam obsługę wyświetlacza z Nokii 3310 ale ma ten sam sterownik co Twój LCD.
    W załączniku masz przykład.



    Dzięki, wyświetlacz dziala.



    Witam. Ten program się kompiluje, przy debugowaniu niby tez nie wchodzi w żadną (nieskończoną) pętle. Ale jednak wyświetlacz się nie inicjuje. Co robię źle?
    Załączniki:
    • test.zip (621.09 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #9 11512132
    MrDarkenRahl
    Poziom 13  
    Posty: 129
    Ocena: 7
    Mam pewien problem przy podłączeniu:
    [C] [C][stm32] - Błąd kompilacji 'RCC_APB2Periph_GPIOB' i problem z funkcją Delay
    W deklaracjach jest:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    I nie mam pewności, co do czego podłączyć. Znaczy Vdd jest jasne - do +3 na płytce, GND też wiem, a Vout przez kondensator do GND. I teraz zabrakło mi kabli do zapełnienia tych portów... Mógłby mi ktoś pomóc? Tzn który numer pinu (z obrazka) do którego pinu na płytce Discovery, będę bardzo wdzięczny.
  • #10 11512183
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    STM32 | LCD
    PA1 -> D/C
    PA2 -> RES
    PA3 -> SCE
    PA5 -> SCK
    PA6 -> nic
    PA7 -> SDIN
  • #11 11512875
    MrDarkenRahl
    Poziom 13  
    Posty: 129
    Ocena: 7
    Niestety wyskakuje jakiś błąd:
    [C] [C][stm32] - Błąd kompilacji 'RCC_APB2Periph_GPIOB' i problem z funkcją Delay
    Wyświetlacz podłączony na pewno dobrze i na 100% jest sprawny.
  • REKLAMA
  • #12 11513084
    McMonster
    Poziom 32  
    Posty: 1942
    Pomógł: 182
    Ocena: 57
    MrDarkenRahl napisał:
    Niestety wyskakuje jakiś błąd:
    [C] [C][stm32] - Błąd kompilacji 'RCC_APB2Periph_GPIOB' i problem z funkcją Delay
    Wyświetlacz podłączony na pewno dobrze i na 100% jest sprawny.


    Wyraźnie widać, że błąd masz już w kodzie, przed samym procesem programowania.

    EDIT:
    Pokaż zakładkę "Problems" w dolnym panelu środowiska.
  • #13 11513101
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Jeśli zaimportowałeś projekt do tego TrueStudio, to nie będzie działało.
  • #14 11513117
    MrDarkenRahl
    Poziom 13  
    Posty: 129
    Ocena: 7
    McMonster napisał:
    MrDarkenRahl napisał:
    Niestety wyskakuje jakiś błąd:
    [C] [C][stm32] - Błąd kompilacji 'RCC_APB2Periph_GPIOB' i problem z funkcją Delay
    Wyświetlacz podłączony na pewno dobrze i na 100% jest sprawny.


    Wyraźnie widać, że błąd masz już w kodzie, przed samym procesem programowania.

    EDIT:
    Pokaż zakładkę "Problems" w dolnym panelu środowiska.

    Cytat:
    make: [clean] Error 127 (ignored) F0_lcd3310 C/C++ Problem


    mrh napisał:
    Jeśli zaimportowałeś projekt do tego TrueStudio, to nie będzie działało.

    A czy mógłbyś zrobić projekt dla tej wersji, bądź łopatologicznie wyjaśnił, jak go zrobić?
  • #15 11513184
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Nie mam tego programu więc Ci nie zrobię...
    Zrób nowy projekt w TrueStudio i dodaj do projektu foldery delay, lib, gpio, i pliki stm32f0-discover i main.
  • #16 11513311
    MrDarkenRahl
    Poziom 13  
    Posty: 129
    Ocena: 7
    mrh napisał:
    Nie mam tego programu więc Ci nie zrobię...
    Zrób nowy projekt w TrueStudio i dodaj do projektu foldery delay, lib, gpio, i pliki stm32f0-discover i main.

    A jaką masz wersję? Bo niestety mimo dodania się sypie :/
    Cytat:
    undefined reference to `main' startup_stm32f0xx.s /lcd/src line 109 C/C++ Problem
  • #17 11513469
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Ja mam Eclipse + CodeSourcery + OpenOCD.

    MrDarkenRahl napisał:
    undefined reference to `main' startup_stm32f0xx.s /lcd/src line 109 C/C++ Problem

    Błąd linker'a.
  • #18 11513880
    elektronik999
    Poziom 26  
    Posty: 1203
    Pomógł: 8
    Ocena: 85
    No właśnie ja mam ten sam problem. Nijak nie da sie uruchomić wyświetlacza. Działą tylko juz skompilowany program od mrh (Dzieki!) ale nie mogę wprowadzić żadnej zmiany w program bo się nie kompiluje i błąd "make: [clean] Error 127 (ignored) F0_lcd3310 C/C++ Problem"

    Wymiękam. Dalej nie mogę skompilować tego programu tak żeby działał. Przesiadłem się na Keil uVision4. Program się kompiluje ale się zawiesza i na ekranie nic sie nie pojawia.

Podsumowanie tematu

✨ Użytkownik napotkał problemy z kompilacją programu dla płytki STM32F0Discovery, przy podłączeniu wyświetlacza Nokia 5110 z kontrolerem PCD8544. Błąd "Type 'RCC_APB2Periph_GPIOB' undeclared" został rozwiązany przez zmianę na "RCC_AHBPeriph_GPIOB". Użytkownik miał również trudności z funkcją opóźnienia, która została zasugerowana jako pętla for. Po poprawkach program kompilował się, ale wyświetlacz nie inicjował się. Użytkownicy dzielili się przykładami kodu oraz wskazówkami dotyczącymi podłączenia pinów. Problemy z inicjalizacją wyświetlacza oraz błędy linker'a w środowisku Atollic TrueSTUDIO były również poruszane. Użytkownik przesiadł się na Keil uVision4, gdzie napotkał kolejne trudności.
Wygenerowane przez model językowy.
REKLAMA