02-Show (Terminal per STM32F4)


Mit diesem Projekt kann die STM32F4 CPU mit einem PC “gesteuert” werden.

Bilder :

Funktion :

Man verbindet die CPU mit dem PC und kann dann Kommandos an die CPU senden, die diese dann ausführt.

Auf wunsch von “Joerg” kann man 3 Verbindungsarten benutzen :
1. Per USB-Kabel und der USB-OTG-Buchse = USB-CDC (über einen virtuellen Comport)
2. Per “normaler” UART-Schnittstelle
3. Per Ethernet-Kabel über das UDP-Protokoll (dazu ist ein externer PHY notwendig)

Welche der Schnittstellen aktiviert werden soll, kann im H-File eingestellt werden
(im standard ist nur USB-CDC aktiviert)

Auf der PC-Seite könnt ihr für die Schnittstellen 1+2 z.B. “Putty.exe” oder mein “UART-Terminal” benutzen.
Für die UDP-Schnittstelle könnt ihr mein “UDP-Server.exe” benutzen (der ist zwar eigentlich für das myAVR MK3 Board, geht aber hierfür genauso)

Im Moment gibt es Digitale GPIO Funktionen um einen beliebigen GPIO-Pin als Ausgang (oder Eingang) zu definieren und danach entweder den Pegel am Pin zu schalten oder den Pegel auszulesen.
Und auf Wunsch von “Tom” können jetzt auch die 16 AD-Kanäle ausgelesen werden.

Ich habe im PC-Terminal-Programm eine extra Registerkarte eingebaut um die Funktionen etwas komfortabler bedienen zu können.

Falls jemand noch zusätzliche Funktionen wünscht (z.B. DAC usw) und das nicht selbst realisieren kann, dann schreibt mir.

Kommandos :

Die Kommandos müssen als “Strings” an die CPU gesendet werden (mit CarriageReturn “0x0D” als Endekennung)

das Kommando “HELP” listet alle im Moment implementieren Befehle auf

falls ein Kommando nicht verstanden wurde (z.B. weil falsch geschrieben) wird ein “CMD=?” zurückgesendet

Beispiele :

GPIO:
um den Pin [Port-D, Pin-12] als Ausgang zu deklarieren : “GPIO_OUT_D12″
um einen Hi-Pegel an [Port-D, Pin-12] auszugeben : “GPIO_HI_D12″
um einen Lo-Pegel an [Port-D, Pin-12] auszugeben : “GPIO_LO_D12″
um den Pin [Port-C, Pin-3] als Eingang zu deklarieren (mit PullUp) : “GPIO_IN_PU_C03″
um den Pegel an [Port-C, Pin-3] zu lesen : “GPIO_RD_C03″
ADC:
um den Pin [Port-A, Pin-0] als Analog-Eingang zu deklarieren : “ADC_IN_A00″
um den AD-Wert an [Port-A, Pin-0] zu lesen : “ADC_RD_A00″
um eine Mittelwertbildung über 32 Werte einzuschalten : “ADC_SET_MW_5″

Hier der komplette CooCox-Projektordner zum download :

Show_02_Terminal

Hier der Link zu meinem Terminal PC-Programm  :

PC-Programme


7 Antworten auf 02-SHOW (Terminal per STM32F4)

  1. Joerg sagt:

    Das ging ja echt fix :)

    Danke!

  2. Tom sagt:

    Vorneweg: Super Seite, super Anleitungen, alles perfekt und funktioniert einwandfrei!

    “Falls jemand sowas gebrauchen kann” —> Ja genau das was ich gesucht habe!
    und dann “falls jemand eine zusätzliche Funktion wünscht”: Ja das wäre eine richtig gute Sache, dass man per Terminalbefehl jeweils 2 oder 3 ADC Ports ausliest und den ADC Wert ans Terminal zurücksendet.
    Wäre toll, wenn du das auf deine To-Do Liste setzen könntest.
    Dann müssten wir ernsthaft mal über dein Zepter reden :)

    • admin_ub sagt:

      Ja, kein Problem. Ich werde dann mein PC-Terminal-Programm auch erweitern, damit man das etwas komfortabler einsetzen kann.

    • admin_ub sagt:

      fertig. probier es mal aus. und den speed vom auslesen bitte nicht kleiner als 50ms einstellen (known bug :-)

  3. Joerg B. sagt:

    Hallo Uwe,
    ich würde gerne Variablen hin und her senden können. int und float. Falls du dazu mal Zeit finden würdest. Würde mich freuen.

    Grüße

    Jörg

    • admin_ub sagt:

      schau dir mal die Library-75 an.

      • Joerg B. sagt:

        Das umwandeln zum senden ist ja nicht wirklich schwierig, komplizierter ist das extrahieren des empfangenen Strings.
        Mit festen Längen wird man da ja nichts.


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

2 Kommentare zu 02-Show (Terminal per STM32F4)

  1. aamir sagt:

    Can u share source code for PC programs thanks

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.