Ich habe einen STM32F103 Controller und darauf einen Sensor über I2C angeschlossen. Der Sensor kann einen Interrupt auslösen (Auf PIN3 in dem Fall). Meine Frage: Wie kann ich einen Interrupt Handler schreiben, welcher darauf reagiert? Was mir an Informationen fehlt: - Auf welchem Pin bei dem Controller muss ich auf den Interrupt "warten"? - Wie kann ich einen Interrupt Handler speziell für diesen Pin schreibene?
Hallo; du kannst am STM32 im Prinzip jeden GPIO Pin als Externen Interrupt definieren. Hierfür hast du 16 "externe Interrupts". Also für jedes Bit eines GPIO Ports jeweils einen. Per Definition kannst du diesen also nur einmalig vergeben. Du hast also EXTI1 nur für Bit 1 von PORTA,oder B,oder C ... Abzüglich den Ports an dem sich deinen I2C Perepherie befindet. Beispiele für Interrupt handling findest du im Netz. Empfehlung: CubeMX Konfigurator verwenden, dieser erzeugt emtsprechendes Codeframnent. Gruss
Danke für die hilfreichen Antworten. Bei mir fehlt aber noch ein ziemliches Grundverständniss im Bezug darauf wie ich herausfinde welche Pins/Ports meine I2C Peripherie belegt. Klar, ich habe den Stromlaufplan, aber ich bin nicht wirklich in der Lage den korrekt zu interpretieren. Ich sehe die Pins auf meinem Board, aber wo/wie finde ich die dann im Stromlaufplan?
Hallo, 1. steht im Datenblatt deines Kontrollers Da gab es auch eine Tabelle Stichwort "alternative Function GPIO, o.ä. 2. Schau dir mal den CubeMx Konfigurator an, vielleicht wird es dann klarer . -> Auswahl der Peripherie und Wirkung an der Pin Übersicht.
Heißt das, ich must jetzt für Pin 5 meinen Interrupt Handler schreiben? SCL oder SDA wirds ja wohl nicht sein, also der andere? Zu diesem Konfigurator: wo finde ich den? habe nur diese cube bibliothek von st gefunden
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.
