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


von Kirill A. (kirill)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

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

von Kirill A. (kirill)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


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++".

von Kirill A. (kirill)


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 ;)

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
Noch kein Account? Hier anmelden.