Erstes serielles Testprogramm für das STM-Discovery Board

Nach etwas Suche im Netz fand ich hier und hier Beispiele für serielle Übertragung vom STM-Board. Um es vorweg zu nehmen, das zweite Beispiel verwendet die Open Source Bibliothek libopenmc3. Ich habe mit dem dortigen USART Beispiel lange experimentiert und das Senden war auch erfolgreich. Auch das Empfangen von Daten am STM-Board lieg gut. sobald ich jedoch den TX_RX-Modus aktivierte, ging das Senden nicht mehr. Vielleicht hat jemand eine Lösung – mir gelang es nicht. Ich bin daher wieder zurück auf die Standard-Library von STM gewechselt und mit dem ersten Beispiel dann mit Senden und Empfangen erfolgreich gewesen.

Der folgende Aufbau ist jedoch erst einmal noch „nur Senden“ vom STM-Board Richtung Mac / PC [Update: Auch der Empfang ist mittlerweile (ohne libopenmc) gelöst, hierzu später mehr]

Um hier zu sehen, ob das funktioniert, konnte ich endlich mal meinen Logik Analyser testen. Für alle, die dieser Analyser interessiert, er ist erhältlich bei Saleae und bietet tolle Analysemöglichkeiten. Und das Beste: Die dazugehörige Software läuft unter Linux, Windows und Mac OS!

Das serielle Beispiel sendet nun Zeichen vom STM-Board ausgehend. Die seriellen Signale können dan direkt an einem der Pins abgegriffen werden. Achtung: Die seriellen Ports des STM-Boards dürfen nicht direkt an einen PC angeschlossen werden, da das STM-Board nur mit 3,3 Volt also „logisch HIGH“ arbeitet“. Der PC aber mit 5 oder gar 15 Volt!

Der Versuchsaufbau sah dann wie folgt aus:

 

Hier der entscheidende Ausschnitt des Sourcecodes:

Sehr schön ist hier in der Software des Logic Analysers nun das serielle Protokoll zu erknnen – bzw. die gesendeten Zeichen, die übertragen werden: