Skocz do zawartości

Kurs STM32 - #12 - I2C w praktyce, akcelerometr


Komentator

Pomocna odpowiedź

Ciężko odpowiedzieć na tak ogólne pytanie - błąd może być właściwie wszędzie. Najpierw spróbuj może trochę wyjaśnić jak Twój układ wygląda. Czy używasz tego samego modelu procesora, płytki Nucleo, na pewno podłączasz taki sam moduł LSM303D?

Nieco dziwny jest brak komunikatu, proponowałbym więc powrót do części 3 kursu i włączenie debuggera: https://forbot.pl/blog/artykuly/programowanie/kurs-stm32-3-plytka-nucleo-konfiguracja-srodowiska-id4875

Dzięki temu będzie chociaż wiadomo gdzie program się zatrzymuje.

Link do komentarza
Share on other sites

Tak używam elementów z zestawu, ale już udało mi się znaleźć błąd. układ był połączony w porządku. Problem jest taki, że akcelerometr nie stykał z tą 9-pinową przejściówką, która byłą do niego dołączona. Jak przyłożyć przewodu bezpośrednio do wyjść akcelerometru to wszystko ślicznie działa 🙂

Link do komentarza
Share on other sites

Elvis co znaczy następująca linia kodu :

I2C_SendData(I2C1, 0x80 | reg);

i idea alternatywy rejestru z tą liczbą tzn 0x80 ??? dlaczego nie wystarczy wpisać samego rejestru REG po co ta alternatywa ??? Nie pytam bez powodu, bo jak wpiszę tylko zmienną reg bez alternatywy to mam błędne wyniki, a jak jest tak jak w kodzie na forum czyli z alternatywa to wszystko jest ok. Włosy sobie wyrywałem, żeby znaleźć błąd w kodzie a to ta linijka.

Link do komentarza
Share on other sites

Nie bardzo rozumiem co złego widzisz w operatorze |, zapis (x | 0x80) to po prostu zapalenie 7 bitu.

A dlaczego ten bit ma być ustawiony opisane jest w dokumentacji układu:

The I2C embedded in the LSM303D behaves as a slave device and the following protocol must be adhered to. After the START condition (ST) a slave address is sent, once a slave acknowledge (SAK) has been returned, an 8-bit sub-address is transmitted: the 7 LSb represent the actual register address while the MSb enables address auto-increment. If the MSb of the SUB field is 1, the SUB (register address) is automatically incremented to allow multiple data read/write.
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

Elvis zapis rozumiem, chodzi o ten 7 bit licząc od 0, więc w ten sposób włącza się auto inkrementacje co rozwiązuje moje problemy z przesyłaniem danych czego nie doczytałem w dokumentacji dla lsm303D i błędnymi wynikami. Dzięki!

Link do komentarza
Share on other sites

Spotkał się ktoś z takim problemem, że nie znajduje akcelerometru? Wrzucam pierwszy kompletny kod, kompiluje się, a w konsoli (Tera Term) pojawia się "Wyszukiwanie akcelerometru..." i nic dalej. Sprawdzałem podłączenie oraz na drugim akcelerometrze i wciąż nie działa.

EDIT:

Już działa, problemem było to, że akcelerometr nie stykał dobrze z tym "grzebieniem".

Link do komentarza
Share on other sites

Cześć, próbuje uruchomić układ na płytce nucleo-f7, niestety w tej generacji nie ma już dostępnej biblioteki "STM32F10x Standard Peripherals Library". Aktua;nie korzystam z biblioteki HAL. Czy jest jakiś dobry sposób aby przerobić ten kod pod generacje F7? Czy jest może już napisana jakaś biblioteka tego akcelerometru?

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.