I2C Problem beim stm32

OP #3092859
Lesenswert?
• ▲
▼
hallo,

ich hab da eine Frage. ich programmiere einen STM32 und hänge da seit 
ein paar tagen am I2C bus fest. prinzipiell läuft der Bus ohne probleme, 
aber ab und zu kommt es dazu, dass der Bus Busy ist und sich dadruch die 
Software aufhängt und nix mehr funktioniert, da er in einer While 
schleife fest hängt.
ein reset im debug modus hilft leider nix, der bus ist dann imer noch 
busy. erst wenn ich die Platine mit dem STM32 von der 
Versorgungsspannung trenne und wieder neu starte ist alles wieder ok.

weis jemand woran das liegt und was man da machen kann? ich benuts die 
Standart Lib des STM32
Gast #3092956
Lesenswert?
• ▲
▼
Die Methode hier habe ich bei WaveShare geklaut, einfach die Events 
auswerten und mit nem Timeout arbeiten:
1
timeout = I2C_Timeout;
2
while(!I2C_CheckEvent(I2C2,  I2C_EVENT_MASTER_BYTE_TRANSMITTED)) {
3
  if((timeout--)==0) {
4
      return 0xFF;
5
  }
6
}

Anstatt dem return 0xFF kann man sich auch eine Meldung per USART 
schicken lassen oder sowas.
OP #3093151
Lesenswert?
• ▲
▼
Klaus schrieb:
> peter müller schrieb:
>> ich muss die spannungsversorgung kurz weg nehmen damit der bus wieder
>> läuft
>
> Aus der I2C Spec:
>
>> If the data line (SDA) is stuck LOW, the master should send nine clock
>> pulses. The device that held the bus LOW should release it sometime
>> within those nine clocks.
>
> MfG Klaus

was willst du mir bitte damit sagen?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.