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

STM32F103 biblioteka HAL i obsługa komunikacji CAN

Buabua 11 Kwi 2017 22:08 2142 4
REKLAMA
  • #1 16407041
    Buabua
    Poziom 7  
    Posty: 6
    Mam problem z komunikacją po magistrali CAN.
    Próbuję uruchomić prosty program do odbioru danych po CANie i niestety nie działa.
    Uruchomiłem parę przykładów znalezionych w internecie i nic.
    Program generuję za pomocą SMT32CubeMx i korzystam z biblioteki HAL - bo tak chyba najprościej.
    Korzystam z gotowej płytki STM32F103C8T6 do której podłączyłem MCP2151 Tx - > PB9 , Rx -> PB8 . Z drugiej strony CANu wysyłam ramki poprzez Arduino i moduł MCP2515_CAN. Prędkość jaką ustawiłem to 250kbps.
    Poniżej zamieszczam mój aktualny plik main.c
    Jeśli ktoś może pomóc to proszę.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • REKLAMA
  • #3 16407094
    Buabua
    Poziom 7  
    Posty: 6
    Chętnie zobaczę przykład z SPLu.
    Co znaczy remap dla PB8 i PB9? Myślałem jak ustawię w Cube to pozostanie mi tylko pisanie obsługi CAN.
  • REKLAMA
  • Pomocny post
    #4 16407104
    rb401
    Poziom 39  
    Posty: 3002
    Pomógł: 750
    Ocena: 984
    Buabua napisał:
    Co znaczy remap dla PB8 i PB9? Myślałem jak ustawię w Cube to pozostanie mi tylko pisanie obsługi CAN.


    Remap tych pinów masz już zrobiony przez CubeMX. W pliku "stm32f1xx_hal_msp.c".
    Tak że nie to.

    Przykładowe demo CAN na HAL masz w repozytorium CubeMX, co prawda dla nieco większego F103 i nie w konwencji Cube, ale podejrzyj ustawienia, może coś zobaczysz:

    Repository\STM32Cube_FW_F1_V1.4.0\Projects\STM3210E_EVAL\Examples\CAN\CAN_Networking\Src
  • #5 16407129
    Buabua
    Poziom 7  
    Posty: 6
    Faktycznie. W pliku stm32f1xx_hal_msp.c mam już remap tych pinów.


    Poniżej zawartość pliku pliku stm32f1xx_hal_msp.c.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Panowie coś zaczyna się dziać na magistrali CAN.
    Chyba brakowało ustawienia filtra oraz powiązania zmiennych odbierania i wysyłania danych CAN.
    Poniżej zmieniona funkcja konfiguracji CAN , dodane zostały zmienne oraz filtr.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
REKLAMA