Witam kolegów,
od jakiegoś czasu próbuje skomunikować ze sobą dwa procesory STM32 za pomocą magistrali I2C za wykorzystaniem przerwań po stronie Slave. W zasadzie wszystko działa
![Szczęśliwy :)](https://forum.atnel.pl/images/smilies/icon_e_smile.gif)
No właśnie!! ale czy poprawnie? Ciekawi mnie jedna zagwostka, której nie potrafię wytłumaczyć sobie sam. Otóż ile danych nie pobierałbym od slave to zawsze w ramce widoczny jest jeden bajt za dużo jak w przebiegu poniżej (zapis 6 bajtów + odczyt 2 bajtów). Transmisja jest realizowana na jednym mikrokontrolerze z wykorzystaniem I2C1 i I2C2. Zastanawiam się nad tym:
-dlaczego master dalej generuje przebieg na SCL po nadaniu NACK(niechęć do przyjmowania kolejnych danych)?
-dlaczego na końcu dodatkowy bajt to zawsze 0xFF (podejrzewam, że linia SDA została już ściągnięta do VCC a SCL jeszcze nie, stąd to zamieszanie)?
-wynikła sytuacja jest spowodowana rozsynchronizowaniem się slave i master (w co wątpię bo sygnał SCL nadal istnieje)?
-powodem jest niedoskonałość analizatora(Sal....e lo...c)?
![Obrazek](https://obrazkiforum.atnel.pl/thumb/3013/9bb208f52dec67b6866a614fbab6af4b.JPG)
Będę wdzięczny za każdą Waszą wskazówkę.