Po pierwsze sorry za zwłokę. Po drugie na pewno linii nie pomyliłem. linie adresowe na pewno są przypięte do masy ponieważ na Arduino działa. Adres też nie powinien się zmienić. zegar ma 100k (standard).
Zauważyłem, że jak zmienię linię z PB9 na PB7 (SDA), a z PB8 na PB6 (SCL) (to się chyba mapowanie nazywa) to zmienia mi się z HAL_ERROR na HAL_BUSY (wartość zwrócona z HAL_I2C_IsDeviceReady).
Przyjrzałem się sprawie i nie ważne na jakiej linii podepnę to i tak muszę nacisnąć przycisk RESET (gdzieś tak wyczytałem) kilka razy i dopiero wtedy pokazuje mi się sygnał na obu liniach (zbadałem przy użyciu oscyloskopu), ale wtedy w funkcja zwraca HAL_ERROR. Na początku funkcja zwraca HAL_BUSY i nic nie wysyła (oscyloskop), ale jak nacisnę kilka razy RESET to dopiero zaczyna wysyłać.
Dodano po 11 [minuty]:
Czy sygnał SCL powinien tak wyglądać ? (ten dolny)
Dodano po 31 [minuty]:Ten sygnał powinien być ok, a co w dodatku widać bit ACK też jest. To funkcja IsDeviceReady nie powinna zwrócić HAL_OK ?
Dodano po 58 [minuty]:Nałożyło się kilka błędów.
1. Nie wiedziałem, że trzeba restartować poprzez wciśnięcie guzika STMme
2. Jak tworzyłem HAL_StatusTypeDef to na początku nic mu nie przypisywałem i zaczął mi dawać HAL_OK (chociaż nie było ok

). Później przypisywałem "1" co daje HAL_ERROR. Program nie przechodził przez funkcję która mogła by nadpisać zmienną przez co ja odczytywałem błędne informację.
3. Najważniejszy błąd (strasznie mi wstyd, bo się zapierałem ). Pomyliłem adres ;( myślałem, że funkcja HAL sama robi przesunięcie bitowe a tak nie było.
Dałem adres 0x80 i działa. Działało ;P Bo teraz mam problem z tym, że nawet jak wciskam po naście razy RESET to i tak SCL i SDA nie zaczyna nadawać.