Skocz do zawartości

Brak nowych odczytów na magistrali i2c - czujnik LSM303D(akcelerometr+magnetometr)


Pomocna odpowiedź

Napisano

Cześć!

Wykorzystuje czujnik LSM303D z kursu do pomiaru pola magnetycznego i mam problem z jego stabilną pracą na STM32 . Efekt jest taki, że jak wgram program lub wcisnę przycisk resetu mogę swobodnie podglądać zmieniające się dane na terminalu (poruszam robotem), ale jeżeli wyłączę robota i ponownie włączę to na terminalu widnieje stała wartość ( w dodatku błędna) , co może być przyczyną tak działającego programu ?

Dzięki za wszelkie wskazówki 🙂

PS : do obsługi i2c korzystałem z kodów z kursu STM32F1

Spróbuj dodać opóźnienie przed inicjalizacją LSM303D, ew. dwa razy wywołaj procedurę inicjalizacji, najlepiej z opóźnieniem między pierwszyma, a drugim wywołaniem. Jeśli coś pomoże to będzie łatwiej zgadywać gdzie jest problem.

  • Pomogłeś! 1

Nie wiem jak zasilasz LSM303D, ale może warto sprawdzić czy przypadkiem napięcie nie narasta trochę za wolno? Wtedy może tak być, że procesor już działa, a układy peryferyjne jeszcze nie są w pełni gotowe - w każdym razie już wiesz gdzie szukać źródła problemu.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...