www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32 - I2C neu starten


Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

I2C scheint im STM32 nicht allzu robust zu sein.
So ganz viel Erfahrung habe ich mit nicht, aber
ich verwende die 1zu1 die Std.Lib Funktionen.

Taucht ein Fehler auf unterbreche den I2C mit
    I2C1->CR1 &= (~ I2C_CR1_PE); // unset enable pin
    I2C1->CR1 |= I2C_CR1_SWRST;  // reset the peripheral
    I2C1->CR1 &= ~I2C_CR1_SWRST; // re-enable
    I2C1->CR1 &= (~ I2C_CR1_PE); // unset enable pin again after reset

Hatte ich im Netz gefunden.

Damit müßte doch alles resetet sein.
Mit
         I2C1->CR1 |= I2C_CR1_PE;

versucht ich dann den I2C neu zu starten.
Das klappt leider nicht, er bleibt stumm.

Hab ich etwas übersehen?

Danke & Viele Grüße
Uwe

P.S.: Kleiner Tip, für alle, in jeder I2C while() Schleife muß
ein TimeOut, dann kommt man immer wieder zurück und es gibt
keinen Totalausfall.

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso, SR1 und SR2 schau ich mir natürlich immer, an.
Ist aber arg unterschiedlich, fast immer RxNE, machmal
auch BTF, machmal SMBALERT usw.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.