Visual Studio Serial Port und MSP430


In diesem Tutorial wird vorgestellt, wie unter Visual Studio Serial Port genutzt werden kann. Im Beispiel kann der Nutzer Texte über dem Com-Port senden, welche der Mikrocontroller als Echo zurücksendet.

Die serielle Kommunikation wird voraussichtlich für die Kommunikation zwischen zwei Teilnehmern benötigt (hier der MCU und der PC). Bevor noch irgendetwas implementiert wird, macht es Sinn zuerst sich auf die Protokoll-Einstellungen zu einigen. Sender und Empfänger müssen die gleichen Einstellungen aufweisen. Für dieses Projekt werden willkürlich folgende Einstellungen festgelegt:

  • Baudrate: 9600
  • Databits: 8
  • Stopbit: 1
  • Parity Bit: Keins

Mikrocontroller

Als Hardware wird der EXP430G2-Launchpad Revision 1.5 von Texas Instruments eingesetzt. Darauf sitzt der Mikrocontroller MSP430G2553. Der Mikrocontroller spielt im diesem Beispiel den Kommunikationsteilnehmer. Dabei soll der MCU empfangenen Daten vom PC als Echo zurücksenden. Da das Launchpad einen USB zu UART-Wandler integriert hat, wird keine zusätzliche Hardware benötigt. Bei der Hardware ist zu beachten, dass die Jumper für Hardware UART eingesteckt sind (vgl. Abbildung).

EXP430g2 Launchpad hard or software uart

Der Fokus dieses Tutorials soll jedoch nicht auf dem Mikrocontroller, sondern auf das Visual Studio Projekt liegen.

Visual Studio Serial Port

Das Programm wurde mit Visual Studio 2010 geschrieben. Um es selber zu kompilieren, sollte der Anwender einer Version mindestens ab 2010 installiert haben. Das Projekt wurde mySerial benannt.

Nachdem Visual Studio gestartet wurde, wie folgt vorgehen:

  1. Neues Projekt mit Visual Studio anlegen, dabei Windows-Form und C# als Sprache auswählen
  2. Füge folgende Elemente ein und benenne diese wie in der Tabelle
Original Name Neuer Name Funktion
SerialPort1 mySerial Regelt die Kommunikation zwischen PC und Mikrocontroller über dem ComPort.
Button1 btConnect Mikrocontroller mit GUI verbinden
Button2 btSend Sende String über SerialPort
ComboBox1 cbPort Auswahl vom verfügbaren ComPort
TextBox1 tbSend Sende String-Nachricht
RichTextBox1 rtbReceive Empfange String-Nachricht
Label1 Label1
Label1 Label2
Label3 lbStatus Zeigt den aktuellen Status
  1. Das Ergebnis soll so aussehen:

Visual studio serial port gui programm

  1. Das Programm soll folgende Funktion aufweisen:
    • Suche nach den verfügbaren Serial Ports und zeige diese an
    • Verbinde mit Mikrocontroller per Knopfdruck
    • Sende Nachrichten per Knopfdruck
    • Empfange Echo
  2. Elemente vorbereiten

SerialPort; Zuerst müssen wir die Einstellungen am SerialPort (hier als mySerial benannt) einstellen. Dazu auf mySerial klicken und rechts unter Eigenschaften die Einstellungen setzen. In diesem Fall müssen wir nur die Baudrate auf 9600 einstellen.

 

Form1_Load(); Drücke irgendwo auf der Form. Nun gehe im Eigenschaften Fenster und klicke auf Ereignisse. Durch Doppelklick auf Form1_Load() wird der Event automatisch hinzugefügt.

 

Form1_FormClosing(); Drücke irgendwo auf der Form. Nun gehe im Eigenschaften Fenster und klicke auf Ereignisse. Durch Doppelklick auf Form1_FormClosing() wird der Event automatisch hinzugefügt.

 

btConnenct_Click(); Gehe zur Form, mit Doppelklick auf dem Button wird automatisch das Event erzeugt.

 

  1. Zusammengefasst die Funktionen die für das ganze Programm benötig werden:
Funktion Beschreibung
Form1() Konstruktor der Form
Form1_Load() Zur Form-Ladezeit; Hier sollen die verfügbaren  Serial Ports ausgelesen und angezeigt werden
Form1_FormClosing() Zur Form-Beenden; Falls die Form einen Serial-Port geöffnet hat, soll die Form diesen hier wieder schließen
btConnenct_Click() Per Knopfdruck mit dem Mikrocontroller verbinden
btSend_Click() Per Knopfdruck die eine String-Nachricht zu dem Mikrocontroller senden
portDataReceived() Event bei der vom Mikrocontroller empfangen Nachrichten bearbeitet werden
DisplayData() Funktion welche die empfangene Nachricht in der rtbReceice anzeigt. Um keinen Threat-Übergreifenden-Fehler auszulösen, muss die Funktion per Invoke-Befehl in der portDataReceived-Funktion aufgerufen werden.
  1. Der Quellcode kann hier eingesehen werden (oder direkt am Anfang des Artikels das ganze Projekt runterladen)

Für weitere Fragen bezüglich Visual Studio Serial Port stehe ich jederzeit zur Verfügung. Einfach per Mail kontaktieren.

Schreibe einen Kommentar

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

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.