Skocz do zawartości

Kurs STM32 F4 - #9 - Obsługa I2C, akcelerometr


Pomocna odpowiedź

html_mig_img
Podczas projektowaniu systemów elektronicznych bardzo często pojawia się potrzeba stosowania specjalistycznych czujników. Jeżeli nie są one wyposażone w wyjścia analogowe, to trzeba się z nimi porozumieć w inny sposób.W tym odcinku kursu zapoznamy się z obsługą akcelerometru, który korzysta z I2C!

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Link do komentarza
Share on other sites

Cześć

Czekałam na I2C, doczekałem się, jest całkiem OK, ale przyznam, że liczyłem na troszkę więcej.

Coś o kontroli zajętości odczytywanego układu, kontroli błędów, coś o HAL_I2CEx_ConfigDigitalFilter, czy też HAL_I2CEx_ConfigAnalogFilter - po co filtry i kiedy, jak ustawiać ?

Link do komentarza
Share on other sites

JSt, kurs dedykowany jest dla osób, które wcześniej nie zajmowały się HALem dlatego opisane zostały najważniejsze informację - i tak wyszedł już z tego całkiem długi artykuł 🙂 Nie wykluczone jednak, że pojawi się kontynuacja kursu (2 poziom), wtedy będzie miejsce na opisywanie bardziej zaawansowanych tematów.

Link do komentarza
Share on other sites

No teraz to mi zaimponowałeś Treker 🙂 W takim razie MUSI być 2 poziom 🙂 Kurs jest bardzo fajny i sporo się nauczyłem. Niedosyt wynika z tego, że uruchamiam urządzenia, buduję własne biblioteki i chce to robić dobrze od a do z. Mają działać w amatorskich projektach o pewnej wartości przeliczalnej na pieniądze (niestety prywatne) więc się niecierpliwię.

Przy okazji - Gdzie można poczytać o podstawach RTOS ? Pozdrawiam.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

JSt, rozumiem, ale nie zależy to tylko ode mnie. Daje znać, że jest taka możliwość, ale czy się uda, to zobaczymy dopiero za jakiś czas, gdy cały kurs będzie dostępny 🙂

Przy okazji - Gdzie można poczytać o podstawach RTOS ? Pozdrawiam.

Na ten moment nie było na Forbocie materiałów na ten temat 🙁

Link do komentarza
Share on other sites

JSt, rozumiem, ale nie zależy to tylko ode mnie. Daje znać, że jest taka możliwość, ale czy się uda, to zobaczymy dopiero za jakiś czas, gdy cały kurs będzie dostępny 🙂
Jasna sprawa. Może troszkę za poważnie potraktowałeś moje MUSI. Było z przymrużeniem oka, ale jak jest możliwość trzeba mieć nadzieję 😉

Edytka:

Dzięki za liknk Ursmar

Link do komentarza
Share on other sites

Cześć,

Znajdzie się jakaś dobra duszyczka i powie mi jak zrobić w eclipsie wspólną bibliotekę

dla wszystkich projektów. Chodzi mi głównie oto, aby nie trzeba było za każdym razem kopiować jej do nowo tworzonego projektu. Drobna zmiana w bibliotece w jakimś projekcie powoduje, że muszę do każdego z projektów kopiować ją osobno. Najlepiej jak by była w jednym miejscu w "workspace".

Ma ktoś jakiś pomysł ?

pozdrawiam

Link do komentarza
Share on other sites

Hej,

Po pierwsze świetny kurs!

Po drugie w bibliotekach HAL jest kilka funkcji do transmisji I2C. Mam pytanie o różnice między użytymi w kursie funkcjami HAL_I2C_Mem_Write/Read a funkcjami HAL_I2C_Master_Transmit/Receive? Do tej pory używałem tych drugich wysyłając tablicę z adresem rejestru i przesyłaną daną.

Link do komentarza
Share on other sites

Cześć

Czekałam na I2C, doczekałem się, jest całkiem OK, ale przyznam, że liczyłem na troszkę więcej.

Coś o kontroli zajętości odczytywanego układu, kontroli błędów, coś o HAL_I2CEx_ConfigDigitalFilter, czy też HAL_I2CEx_ConfigAnalogFilter - po co filtry i kiedy, jak ustawiać ?

na stm32f411 tego nie uswiadczysz

cytat z ref . man. The programmable noise filter is available on STM32F42xxx and STM32F43xxx devices

only

Link do komentarza
Share on other sites

na stm32f411 tego nie uswiadczysz

cytat z ref . man. The programmable noise filter is available on STM32F42xxx and STM32F43xxx devices only

No tak... Tylko akurat mam 429 Disco i 446 Nucleo 🙂

Link do komentarza
Share on other sites

...ale nie o nich jest kurs.
Z nagłówka wynika, że jest to kurs F4 HAL, a nie 411, więc chyba wprowadzasz w błąd... Nie zmienia to faktu, że kurs jest fajny, Treker ustosunkował się do mojej prośby, wyjaśnił, że to podstawy i może będzie więcej za jakiś czas. Sprawa jasna i temat filtrów zamknięty.

Zastanawia mnie natomiast np. brak odpowiedzi na temat poruszony przez kolegę woocom, bo to już są podstawy i w moim odczuciu też brakuje małego komentarza na temat HAL_I2C bez MEM. Oczywiście można wszystko znaleźć w notach, manualu do HAL_F4 itd, ale skoro to kurs podstaw HAL...

Jest nawet info jak podłączyć elektrycznie (choć sprawa rezystorów podciągających jest wszędzie przy aplikacji układów opisywana), a brakuje w moim (i jak się okazuje nie tylko moim) odczuciu wspomnianego, bardziej rozbudowanego info o HAL - temacie tego kursu.

Nie piszę o tym, aby wywołać przepychanki, tylko sugeruję i proponuję, aby może następna część była jeszcze ciekawsza.

Link do komentarza
Share on other sites

Hej,

Po pierwsze świetny kurs!

Po drugie w bibliotekach HAL jest kilka funkcji do transmisji I2C. Mam pytanie o różnice między użytymi w kursie funkcjami HAL_I2C_Mem_Write/Read a funkcjami HAL_I2C_Master_Transmit/Receive? Do tej pory używałem tych drugich wysyłając tablicę z adresem rejestru i przesyłaną daną.

Cześć! Wybacz długi czas odpowiedzi.

Aby odpowiedzieć na to pytanie warto przyjrzeć się parametrom wywołania tych funkcji.

HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)

HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout)

Funkcja Master_Transmit przyjmuje jedynie adres urządzenia docelowego, wskaźnik na adres danych i rozmiar transmitowanej wiadomości.

Funkcja Mem_Write przyjmuje dodatkowo informację o docelowym adresie pamięci, do której ma zostać wpisana transmitowana wiadomość.

Oczywiście za pomocą funkcji Master_Transmit można osiągnąć to samo, umieszczając adres pamięci na początku tablicy danych do przesłania. Rozwiązanie z podaniem tej informacji jako parametr wywołania jest jednak bardziej przejrzyste, dlatego w tym artykule korzystamy właśnie z niego.

Dlaczego w takim razie w ogóle powstała funkcja Master_Transmit? Czasem zdarzają się urządzenia lub typy transmisji, które nie wymagają podawania adresu pamięci, do której mają trafić przesyłane dane (np. komunikacja I2C pomiędzy dwoma mikrokontrolerami). Wtedy po adresie odbiorcy możemy od razu transmitować dane właściwe.

Mam nadzieję że udało mi się wyklarować kwestię z powyższymi funkcjami 🙂

Zastanawia mnie natomiast np. brak odpowiedzi na temat poruszony przez kolegę woocom, bo to już są podstawy i w moim odczuciu też brakuje małego komentarza na temat HAL_I2C bez MEM.

Brak odpowiedzi był spowodowany moim chwilowym przebywaniem w dziczy bez dostępu do technologii. Bardzo za to przepraszam, bo wiem że kilkudniowe opóźnienie w odpowiedziach pod artykułem może być frustrujące.

Jest nawet info jak podłączyć elektrycznie (choć sprawa rezystorów podciągających jest wszędzie przy aplikacji układów opisywana), a brakuje w moim (i jak się okazuje nie tylko moim) odczuciu wspomnianego, bardziej rozbudowanego info o HAL - temacie tego kursu.

Nie piszę o tym, aby wywołać przepychanki, tylko sugeruję i proponuję, aby może następna część była jeszcze ciekawsza.

Niestety, jest wiele kwestii nad którymi chciałbym się rozwieść bardziej, lub w ogóle je poruszyć. Niestety o wielu rzeczach się zapomina, lub po prostu popełnia się błąd oczywistości, uznając je za powszechnie znane i rozumiane.

No i należy pamiętać, że artykuły powinny mieć skończoną długość =)

Dzięki wielkie za wszystkie uwagi!

Link do komentarza
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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

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

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.