Hallo Zusammen, ich bin fürchterlich neu in STM32. Ich bastel gerade mit einem STM32 M3 rum Für ein Projekt brauche ich neben dem USB mit dem ich die Verbindung zum PC halte, GPS an der 2. Seriellen Schnittstelle noch eine 3. Serielle Schnittstelle. Diese möchte ich an T3C1, T3C2, T3C3 oder T3C4 realisieren. Da ich bei der Programmierung noch nicht soweit fortgeschritten bin, suche ich dazu einen Einstieg. Gibt es irgendwo ein Beispielcode für so eine Lösung? Achso, es soll/muss eine Schnittstelle über eine Leitung werden, sprich der Pin wird nach dem Empfang auf Senden umgestellt, und nach dem Senden wieder auf Empfang. Danke für die Hilfe Carsten
Huch, einen STM32M3 kenne ich nicht. Aber die STM32 U(S)ARts kennen einen "Single-wire half-duplex communication" Modus, der Dein Problem vielleicht direkt loest. Tschuess
Das genaue Modell heißt: STM32F103CBT6 Und der hat halt nur 2 Serielle Schnittstellen, die ich beide schon im Einsatz habe. Gruß Carsten
Carsten Giesen schrieb: > noch eine 3. Serielle Schnittstelle. Serielle Schnittstelle ist sehr relativ. Muss es denn unbedingt eine mit einem U(S)ART sein. Wenn ja bleibt nur es in Software zu realisieren. Allerdings wird es in der STM32 Klasse wohl nicht viel Beispielcode geben, da die STM32 reichlich Varianten mit ueppiger Periphery haben. Aber Du kannst Dir aus der Atmega Welt ein Beispielcode nehmen und Ihn auf den STM portieren. ju
Der STM32F103CBT6 hat doch 3 serielle Schnittstellen. Wo ist jetzt das Problem?
Markus Müller schrieb: > Der STM32F103CBT6 hat doch 3 serielle Schnittstellen. Wo ist jetzt das > > Problem? das es laut Datenblatt einfach nicht stimmt. Die STM32F103Tx haben zwei Die STM32F103Cx, STM32F103Rx, STM32F103Vx haben drei. Quelle: http://datasheet.octopart.com/STM32F103CBT6-STMicroelectronics-datasheet-10330614.pdf
Carsten Giesen schrieb: > Das genaue Modell heißt: > STM32F103CBT6 Carsten Giesen schrieb: > Die STM32F103Cx, STM32F103Rx, STM32F103Vx haben drei. Was fuer einen hast du nun genau?
Mist, da habe ich mich vertan. Sorry. Ich habe den 48Pin also den mit den 3 Seriellen Schnittstellen. Aber auf Pin 21 & 22 habe ich I2C am laufen um div. Sensoren abzufragen. In der Tat ist es einfach so, dass ich ein fertiges Board (Naze32 für Quadrokopter) hier liegen habe, wo die Software OpenSource ist. Und die Pins 16-19 liegen günstig und sind frei. Auf einem dieser Pins würde ich jetzt gerne mit meinem Empfänger über eine Leitung kommunizieren. Das Protokoll ist ein normales Serielles Signal, aber eben über EINE Leitung. Der Vorteil es so zu machen, wäre, dass niemand am Board rum löten müsste. Ich könnte noch den Port nehmen, wo auch USB drüber läuft, aber ich glaube das gibt Stress zu erkennen, wer denn jetzt am Zug ist. Gruß Carsten
Hallo Zusammen, ich möchte nochmal auf dieses Thema zurück kommen. Das wir drei Serielle Schnittstellen auf besagten Board haben ist ja nun geklärt. Die sind aber aus diversen Gründen alle für mich nicht zu benutzten, da sie auf der ein oder anderen Art schon im Einsatz sind. Ich suche also immer noch so etwas wie ein Softwareserial wie es für den Arduino ja auch gibt. Meine Suche in der weiten Welt von Google hat mich leider nicht weiter gebracht. Meine Kontakte konnten mir auch leider nicht weiter helfen! Gruß Carsten
Du hast ja I2C am laufen. Es gibt I2C-UARTs: http://ics.nxp.com/products/bridges/i2c.spi.slave.uart.irda.gpio/ http://www.maximintegrated.com/datasheet/index.mvp/id/6463 Damit solltest Du 1-2 zusätzliche serielle Ports hinbekommen. fchk
Hallo Frank, das ist eine Idee, wenn gar nichts anderes mehr geht! Lieber wäre mir aber wirklich etwas wo ich (andere) nicht noch basteln müssen. Ich bin wirklich erstaunt, dass es in dieser Richtung nichts gibt. Oder suche ich einfach nur falsch? Gruß Carsten
Brauchst Du denn den zusaetzlichen UART fuer Ein und Ausgabe oder nur in einer Richtung. Ich komme dann nochmal auf das zurueck was ich oben schon mal geschrieben habe. Es ist nicht schwer einen Code der fuer den AVR existiert auf einen STM32 zu portieren. Ich habe viele der Libs die ich fuer die AVR's habe auf STM32 portiert. Im allgemeinen machst Du folgendes: I/Os und deren Initialisierungen anpassen dabei gleich per defines die GPIO's auf die Namen mappen die Du in der AVR Lib verwendest. Timer im STM32 aussuchen und configurieren ISR dieses Timers auf Deine ISR Funktion der AVR Lib mappen.
Ich brauche den Port in beide Richtungen, allerdings auf einem Pin. Ich brauche ihn für Telemetrie: 1.) Frage vom Receiver: Gib mir mal die GPS Daten 2.) Antwort vom STM32: Alle GPS Daten Und das alle in 19200 Baud. Das heißt ich muss den Pin zunächst auf Empfang haben und dann zum Antworten umschalten, und wenn es dann fertig ist, wie auf Empfang gehen.
Ich glaube mich zu erinnern das Peter Dannegger hier mal sowas fuer den AVR gepostet hat. Es gibt aber auch mehrere threads die sich damit befassen. Such mal nach "One Wire UART" Ju
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.