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.

Re: Atolic błąd w pliku nagłówkowym stm32f10x.h

Qwert99966 19 Mar 2018 22:41 585 12
  • #1 19 Mar 2018 22:41
    Qwert99966
    Poziom 4  

    Witam, zdaje sobie sprawę, ze moze głupie pytanie.. Otóz chciałbym rozpocząc swoją przygode z stm32 więc stworzyłem swój pierwszy program, dodałem plik nagłowkowy i wyskaczył błąd. Nie wiem do konca co robić, nie chciałbym namieszac w pliku nagłowkowym. Co proponujecie? Z góry dzięki za sugestie.

    0 12
  • Pomocny post
    #2 19 Mar 2018 22:55
    Freddie Chopin
    Specjalista - Mikrokontrolery

    To nie jest plik nagłówkowy - to po pierwsze. Funkcja musi się kończyć klamrą - to po drugie. Naprawdę nie rozumiem czemu nie można wkleić kodu i błędu w formie tekstu, tylko trzeba się porozumiewać obrazkami (*) - to po trzecie.

    (*) - czekam aż ktoś zamiast opisu problemu wrzuci film na youtube na którym będzie widać nagrany smarkfonem ekran monitora

    1
  • #3 19 Mar 2018 23:26
    Qwert99966
    Poziom 4  

    Dzieki za odzew. Uznałem, ze dodając zdjęcie wszystko będzie bardziej przejrzyste. Po dadaniu nawiasu klamrowego wyskoczyły kolejne błędy. Jak się uporać z błedami tego typu?

    0
  • #4 19 Mar 2018 23:30
    2675900
    Użytkownik usunął konto  
  • #5 19 Mar 2018 23:31
    JacekCz
    Poziom 36  

    Qwert99966 napisał:
    ...Po dadaniu nawiasu klamrowego wyskoczyły kolejne błędy. Jak się uporać z błedami tego typu?


    a) kupić książkę do C?
    b) poćwiczyć ten język na hello worldach?
    c) iść do wróżki?
    d) opublikować pełny kod?

    0
  • #6 19 Mar 2018 23:36
    Qwert99966
    Poziom 4  

    Pełny kod ( nie wiem w jaki sposób wysłać, wiec wklejam zwyczajnie) :
    #include "stm32f1xx_it.h"


    extern __IO uint8_t BlinkSpeed;

    void NMI_Handler(void)
    {
    }


    void HardFault_Handler(void)
    {

    while (1)
    {
    }
    }


    void MemManage_Handler(void)
    {

    while (1)
    {
    }
    }


    void BusFault_Handler(void)
    {

    while (1)
    {
    }
    }


    void UsageFault_Handler(void)
    {

    while (1)
    {
    }
    }


    void SVC_Handler(void)
    {
    }


    void DebugMon_Handler(void)
    {
    }


    void PendSV_Handler(void)
    {
    }


    void SysTick_Handler(void)
    {
    TimingDelay_Decrement();
    }


    void EXTI15_10_IRQHandler(void)
    {
    if (EXTI_GetITStatus(USER_BUTTON_EXTI_LINE) != RESET)
    {
    if(BlinkSpeed == 1)
    {
    BlinkSpeed = 0;
    }
    else
    {
    BlinkSpeed ++;
    }

    EXTI_ClearITPendingBit(USER_BUTTON_EXTI_LINE);
    }
    }

    0
  • #7 19 Mar 2018 23:42
    2675900
    Użytkownik usunął konto  
  • #8 20 Mar 2018 01:28
    ghost2000
    Poziom 17  

    Freddie Chopin napisał:
    wrzuci film na youtube na którym będzie widać nagrany smarkfonem ekran monitora

    Już miałem przypadek, gdzie listing był zrobiony w formie kilku fotografii ekranu monitora. Powód: bo tak jest wygodniej. Pytanie dla kogo?

    Dodano po 1 [minuty]:

    JacekCz napisał:
    kupić książkę do C?

    Za darmo jest kilka w necie.

    Dodano po 2 [minuty]:

    Qwert99966 napisał:
    chciałbym rozpocząc swoją przygode z stm32 więc stworzyłem swój pierwszy program,

    Użyj CubeMX. W necie są kursy od migania diodą poprzez komunikację usart, i2c, spi, DMA, obsługę lcd do USB CDC i HID.

    0
  • Pomocny post
    #9 20 Mar 2018 08:11
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Qwert99966 napisał:
    extern __IO uint8_t BlinkSpeed;

    To jest informacja dla kompilatora, że `BlinkSpeed` jest zdefiniowane "gdzieś indziej". Twój problem jest teraz taki, że obiecałeś kompilatorowi zdefiniować tą zmienną w innym pliku źródłowym, ale tego nie zrobiłeś. Czym dokładnie różni się "definicja" od "deklaracji" i od "deklaracji extern" (to właśnie masz w tym pliku) - poczytaj w necie.

    http://en.cppreference.com/w/c/language/declarations
    http://en.cppreference.com/w/c/language/extern
    http://en.cppreference.com/w/c/language/storage_duration

    Obawiam się, że poruszasz się na ślepo.

    0
  • #10 20 Mar 2018 08:52
    ghost2000
    Poziom 17  

    Qwert99966 napisał:
    nie wiem w jaki sposób wysłać, wiec wklejam zwyczajnie

    Nie nie wiem tylko nie chcę wiedzieć Link
    Zastanawia mnie dlaczego utrudniając życie innym oczekujesz od nich pomocy?

    0
  • #11 20 Mar 2018 09:01
    2675900
    Użytkownik usunął konto  
  • #12 20 Mar 2018 09:09
    ghost2000
    Poziom 17  

    Piotrus_999 napisał:
    ghost2000 napisał:
    Zastanawia mnie dlaczego utrudniając życie innym oczekujesz od nich pomocy?
    Przecież widać że ma wstręt do słowa pisanego. Musiałby długi post przeczytać. A do C książkę.

    Jest lekarstwo https://www.ivona.com/ Dziecku, jak było w przedszkolu, zainstalowałem i nie musiałem jej czytać co na stronie jest napisane.

    Co do książek, darmowe w załączniku ale skoro nie chciało się autorowi postu szukać to musi stracić punkty.

    0
  • #13 20 Mar 2018 21:19
    Qwert99966
    Poziom 4  

    Dzięki za wszelkie wskazówki Panowie, na przyszłość będę bardziej świadomy. Szczególne dzięki dla Pana Freddie Chopin. Doczytałem na temat specyfikatora extern, nie dodawałem definicji zmiennej ale usunąłem owy specyfikator, problem znikł. Na tą chwilę nie wiem jeszcze czy to dobra praktyka ale pomogło.

    0