Forum: Mikrocontroller und Digitale Elektronik STM32f103RB Nucleo I2C Bus Beispiel Cube F1


von Kai G. (dr_evil)


Lesenswert?

Hallo zusammen,

Ich habe ein STM32F103RB Nucleo Board und nutze zur Programmierung 
Eclipse mit CubeF1. Das hatte ich in einem anderen thread vergangene 
Woche schon erwähnt.
Aber so richtig weitergekommen bin ich in der Sache leider nicht.
Die Hardware steht (Pullups etc.) Aber der Code nicht.
Als neuling in der ARM Welt steh ich grad aufm Schlauch.

kurzum, ich möchte gerne einen I²C Bus einrichten um mit einem 
Lagesensor zu kommunizieren, hat jemand einen Beispielcode für die 
Initialisierung der Schnittstelle, oder kann mir einen Tipp geben wo ich 
so etwas finden kann?

Ich habe dieses Forum schon danach durchforstet, aber wirklich was 
gefunden habe ich nicht.

Das reference Manual ist auf den ersten Blick anschaulich erklärt aber 
zum Ziel geüfhrt hat mich das auch nciht.


Danke vorab.

von Christopher J. (christopher_j23)


Lesenswert?

Es gibt ein HAL User-Manual: 
www.st.com/resource/en/user_manual/dm00154093.pdf
Außerdem gibt es im CubeF1 noch Beispielcode. Eine kurze Übersicht dazu 
findest du hier: www.st.com/resource/en/application_note/dm00209695.pdf

von Stefan F. (Gast)


Lesenswert?

Irgendwie irritiert mich deine Frage. Du suchst nach Beispiel-Code, der 
die I²C Schnittstelle verwendet. Doch gerade das ist doch der Sinn von 
Cube HAL.

Hast du Dir mal die Beispiele in dem Paket angeschaut?

Hast du ma mit Google gesucht? Wenn ich dort "cube i2c example" eingebe, 
bekomme ich jede Menge Beispiele angeboten, sogar Youtube Videos. Du 
kannst Dir ruhig die Tutorials zu anderen STM32 Serien anschauen. Dank 
der HAL sollte deren Programmierung weitgehend identisch sein.

von Johannes S. (Gast)


Lesenswert?

Das Board ist einfach mit mbed zu programmieren, es ist sogar ‚mbed 
enabled‘ und damit offiziell unterstützt. Auf der Hardware Seite zu dem 
Board ist auch ein Link zum I2C Beispiel: 
https://os.mbed.com/teams/ST/code/Nucleo_i2c_master/?platform=ST-Nucleo-F103RB

von pegel (Gast)


Lesenswert?

Eine wirkliche Frage kann ich auch nicht erkennen.

Was hast du denn bis jetzt gemacht?

Schon mal erfolgreich eine LED auf dem Board blinken lassen?

von derjaeger (Gast)


Lesenswert?

Darf ich dir für den Anfang statt der HAL die StdLib empfehlen?

http://www.st.com/en/embedded-software/stsw-stm32054.html

In der runterladbaren Dateien sind unzählige fertige Beispiele, u.a. wie 
man I2C verwendet.

Und hör nicht auf die Leute, die gleich schreien "StdLib ist ja total 
veraltet und wird nicht weiter entwickelt". Mir hat sie für den Einstieg 
sehr geholfen.

von pegel (Gast)


Lesenswert?

Das ist das Hauptproblem.
Zuerst muss eine Toolchain ausgewählt werden und funktionieren.

Deshalb meine Frage nach Blinky.

von Kai G. (dr_evil)


Lesenswert?

Hallo nochmal,

also ich nutze GNU ARM und GCC Toolchain.

Ich habe die STD Lib nun heruntergeladen und mir die Project examples 
angeschaut.
Da gibt es aber keinen Code, der nur die Schnittstelle konfiguriert.
Eine LED habe ich ans blinke bekommen, also die Kommunikation mit dem 
Board funktioniert.

Um nochmal detailiert darauf zu kommen.
ich suche einen Code, der mir "nur" die Schnittstelle Einrichtet und 
aktiviert.
Das was ich Sende und empfange würde ich dann selbst aufsetzen.

von pegel (Gast)


Lesenswert?

Moin,
das bedeutet dann das du nicht die Cube Funktionen nutzen willst.

In dem Fall würde ich nach dieser Anleitung vorgehen:

http://diller-technologies.de/stm32.html#i2c

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.