Forum: PC-Programmierung C#, MyAVR MK2


von Ted (Gast)


Lesenswert?

Hallo Leute ich habe ein Programm in C# geschrieben um den oben 
erwähnten Programmer auf den Datenmodus umzuschalten leider funktioniert 
das nicht.
Die Comport-Einstellungen sind
Baudrate: 9600
Parity: none
Datenbits: 8
Stopbit: 1

Ich sende das Kommando zum umschalten "浺¹²³©d"

aber es hängt sich immer nur der Programmer auf?
1
 public class UART
2
        {
3
        int Baudrate;
4
        string Comport;
5
        SerialPort Port;
6
7
        public UART()
8
        {
9
            Port = new SerialPort();
10
            Port.Open();
11
        }
12
        public UART(int Baud_rate, string Com_port)
13
        {
14
            Baudrate = Baud_rate;
15
            Comport = Com_port;
16
            Port = new SerialPort(Comport, Baudrate);
17
            Port.Open();
18
19
        }
20
        public void write(string data)
21
        {
22
            Port.Write(data);
23
24
        }
25
        public void close()
26
        {
27
            Port.Close();
28
29
        }
30
        }
mit der Funktion write sende ich die Daten

von Borislav B. (boris_b)


Lesenswert?

Du sendest einen Unicode string an den Programmer? Sicher, dass das 
gewollt ist? (Oder wird der vom Serial Port automatisch ASCII 
encodiert?)

Wie wäre es, wenn du ein Byte-Array schickst?

var dataArray = new byte[] {0, 255, whatever}; // Insert bytes here!
Port.Write(dataArray);

Oder so ähnlich...

von Prog R. (daniel_v)


Lesenswert?

ich kenn das Teil zwar nicht, aber habe jetzt mal die Beschreibung 
gegoogelt und mit fällt auf, dass

1) die Baudrate 19200 ist (Seite 14)
2) er ein Return-Kommando schickt - vielleicht sollte man das auslesen?

Hoffe, das hilft ein wenig.

http://download.zeitech.de/Documents/mySmartUSB_MK2_Manual.pdf

: Bearbeitet durch User
von Ted (Gast)


Lesenswert?

Habe die Baudrate umgestellt
Sendet jedoch keinzeichen zurück
auch das zeichen format habe ich umgestellt
1
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
2
Port.Write(enc.GetBytes("浺¹²³©d"), 0, 8);

von Peter II (Gast)


Lesenswert?

Ted schrieb:
> System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
> Port.Write(enc.GetBytes("浺¹²³©d"), 0, 8);

das wird nicht gehen, weil 浺¹²³©d" kein ASCII ist.

Verwende ein bytearray wie von  Boris P. schon vorgeschlagen.

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.