Witam, jestem w trakcie pisania własnej biblioteki do obsługi SPI na mikro kontrolerze STM32F746NG. Mam problem z wysyłaniem/odbieraniem 8 bitów. Jeśli próbuję "wrzucić" do rejestru DR uinta8, np. 0x55 to na oscyloskopie widzę 0x0055. Dodam, że SPI mam skonfigurowane na 8bit. Dopiero gdy wrzucę do rejestru DR w ten sposób: *(volatile uint8_t*)&SPIx->DR= 0x55 to na oscyloskopie widać ładnie 0x55. Powiedzmy, że w ten sposób rozwiązałem wysyłanie 8 bitów. Do odbioru napisałem następującą funkcję:
Funkcja zawsze zwraca 0x00, pomimo, że na oscyloskopie i w trybie debugowania widzę dane w rejestrze DR, ale w momencie przejścia do linijki dane[i] = (SPIx->DR); znikają z rejestru...
Podejrzewam, że problem może być z Data Pakingiem, o którym czytałem w RM ale nie wiem co dokładnie mogę jeszcze zmienić. Słyszałem też, że podobny problem może pojawić się z F0, F3.
Pozdrawiam Krzysiek
Kod: C / C++
Funkcja zawsze zwraca 0x00, pomimo, że na oscyloskopie i w trybie debugowania widzę dane w rejestrze DR, ale w momencie przejścia do linijki dane[i] = (SPIx->DR); znikają z rejestru...
Podejrzewam, że problem może być z Data Pakingiem, o którym czytałem w RM ale nie wiem co dokładnie mogę jeszcze zmienić. Słyszałem też, że podobny problem może pojawić się z F0, F3.
Pozdrawiam Krzysiek