Skocz do zawartości

[STM32F] HAL_I2C_Mem_Write_DMA(...); nie wysyła STOPu??


Pomocna odpowiedź

Gość Camden11
Napisano

Nieczęsto korzystam z I2C w swoich projektach i jak do tej pory nie miałem żadnych przygód z działaniem DMA. Jednak postanowiłem urozmaicić swój projekt o wyświetlacz oled i2c przy którym siłą rzeczy użycie DMA samo się sugeruje i.. spotkała mnie niemiła niespodzianka. Otóż przy wywołaniu funkcji po przekopiowaniu bufora do oleda program kończył swoje działanie w HardFault_Handler. Okazało się, że przyczyną jest brak stopu na końcu transmisji I2C.

Częściowo rozwiązałem problem wpisując stop do przerwania od końca transmisji ręcznie ale nie jestem pewien czy to rozwiązanie jest zupełnie prawidłowe. Być może da się zmusić HALa aby jednak ten stop wysyłał lub trzeba ustawić coś gdzieś tylko nie wiem jak. Może ktoś z was miał z tym podobny problem?

Pozostałe funkcje obsługi I2C działają bez 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...