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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.