mikrocontroller.net

Forum: PC-Programmierung Visual Studio C++ COM-Port / Seriell: 8Bit in einem Byte direkt übertragen


Autor: Kirill A. (kirill)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe schon eine nahezu fertige PC-Anwendung, die Daten über die 
serielle Schnittstelle an einen µC senden soll. Es ist mit Microsoft 
Visual Studio C++ 2008 (mit Windows Forms) programmiert.

Nun folgenedes Problem: Ich habe:
int byte0, byte1;
Da stehen jeweils Daten zwischen 0x00 und 0xFF (0...255) drin, ich nutze 
also genau 8Bit pro (zu übertragenes) Byte.

Der µC wertet sie auch genauso wieder aus (0x00 bis 0xFF pro Byte).

Ich verstehe aber nicht, wie ich meine int's an den µC übertragen kann. 
Es scheint nur folgende Funktionen zu geben:

serialPort->Write(String^ text);
serialPort->Write(array<unsigned char>^ buffer, int offset, int count);
serialPort->Write(array<wchar_t>^ buffer, int offset, int count);

Bsp. der zu sendenden Daten:
byte1 = (kanal<<4) | (data>>4); //kanal, data: int
(byte1 also z.B. 0b01010101)

Wie kann ich meine 8Bit-Daten übertragen? Mit z.B. ASCII (also String!?) 
kann man doch maximal 7 Bit übertragen!?
-> Muss ich noch eine Einstellung wie z.B. folgende ändern?
serialPort->Encoding->CodePage; //oder
serialPort->Encoding->UTF8;

Und mit String komme ich in dem Fall doch sowieso nicht weiter, da bei
int byte0 = 56;
serialPort->Write(byte0.toString());
der String "56" übertragen wird...
Bei den beiden anderen Funktionen verstehe ich die Nutzung nicht:
array<unsigned char>^ bzw. array<wchar_t>^

Ich hoffe ihr könnt mir helfen, denn hier im Forum und mit google konnte 
ich nichts für meinen Fall, also für VS C++, finden.

Kirill

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was gefällt Dir an dieser Variante hier nicht?

serialPort->Write(array<unsigned char>^ buffer, int offset, int count);

Autor: Kirill A. (kirill)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heißt array<unsigned char>^ buffer ?
Wie erstelle ich buffer? Also z.B.
unsigned char buffer[1];
???

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hältst Du davon, mal ein bisschen Dokumentation zur von Dir 
verwendeten Programmiersprache zu lesen?

Kleiner Tip: Das ist nicht C++, sondern eine Microsoft-Perversion 
namens "Managed C++".

Autor: Kirill A. (kirill)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prinzipiell eine gute Idee, mache ich eigentlich auch. ;)
Aber ich dachte, dass mir in dem Fall einfach jemand eine Zeile 
hinschreibt und das wars ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.