I2C Schnittstelle für mehrere Controller realisieren

OP #3977720
Lesenswert?
• ▲
▼
Hallo zusammen,

ich habe hier einen STM32F103 Controller, dieser soll als Master durch 
I2C mit einem anderen Bauteil kommunizieren.

Die Anforderung ist, dass das Programm welches ich dafür entwickle auch 
auf anderen Mikrocontrollern funktioniert. Da stellt sich mir natürlich 
die Frage wie ich das realisieren kann.

Ich bin noch sehr neu im embedded Bereich und das ist auch meiner erster 
richtiger Controller mit dem ich arbeite. Der STM32F103 hat ja diverse 
I2C-Register über die ich die I2C-Kommunikation steuern kann. Sprich für 
z.B. die Start/Stop-Conditions muss ich bestimmte Bits setzen.

Ist das bei anderen Controllern ähnlich? Wie kann ich mein Programm so 
aufbauen, dass meine Funktionen zur Generierung der Start, Stop, Read, 
Write ... Funktionen auch auf anderen Controllern funktionieren?

Viele Grüße
Gast #3977731
Lesenswert?
• ▲
▼
Was meinst Du mit anderen Controllern? Andere STM32Fxxx oder auch 
Atmegas etc.?
Ein Treiber, der auf unterschiedlichen Plattformen verwendbar ist, ist 
nicht möglich. Du kannst einen Treiber aber so aufbauen, daß der für die 
STM32Fxxx und der für die ATmega-Familie dasselbe Interface zu Deiner 
Applikation haben. Du musst dann beim Wechsel der CPU nur die Treiber 
wechseln und nicht Dein Applikationsprogramm.

Für den F103 gibt es die CMSIS-Library, dort werden von ST auch 
I2C-Treiber zur Verfügung gestellt.

Für die STM32F0xx, STM32F2xx und STM32F4xx Familien gibt es im Cube die 
HAL-Library. Die stellt Dir für alle Hardware-Module des STM32Fxxx 
Treiber inkl. Beispielen zur Verfügung.

Gruß, Stefan

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.