C# 2, 10, 16 und 16 sowie ihre ASCII-Codes --------//Konvertierung verschiedener Zeichentypen in C# für die serielle Portkommunikation------------
Verständnis der Zeichenlänge strings s = "Ich bin ein 2-Soldat"; int len = s.Length; 6 Charaktere byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Länge; 11 Bytes
Es macht keinen Sinn, Dezimalzeichen in eine Zeichenkette umzuwandeln, und sie muss in den entsprechenden ASCII-Code umgewandelt werden int t1 = 81; Saite s1 = t1. ToString(); Diese Dezimalumrechnung entspricht ASCII-Zeichen, um Sinn zu machen. s1 = ((char)t1). ToString();
Hexadezimal zu Saite: Das ergibt keinen Sinn. Es ist Tostring. int intAB = 0x16; s1 = intAB.ToString(); Hexadezimal bis ASCII-Zeichen: byte babb = 0x45; String ass = ((char)babb). ToString();
ASCII-Strings bis Dezimalzahlen Saite tr = "2Ab Liu"; Saite d =""; für (int i = 0; Ich < TR. Länge; i++) { int ii = (int)Konvertieren.Zu Char(übers. Teilstring(i, 1)); d = d +" "+ ii.ToString(); }
ASCII-String zu hexadezimaler Zahl Saite s2 = "2Ab Liu"; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = neuer StringBuilder(); foreach (Byte B in BA) { SB. Anhang(b.ToString("x") + " "); }
Hexadezimal bis Dezimal int intA = 0x16; Beim Definieren muss es 0x sein SaitenstrA = "16"; Strings können ohne Strings sein int intA1 = Konvertieren.ToInt32(intA); int intA2 = Konvertieren.ToInt32(strA, 16);
10 bis 16 strA = Convert.ToString(intA2, 16);
Dezimal bis Binär, hexadezimal ist ähnlich int int10 = 10; String str2 = Konvertieren.ToString(int10,2);
Binär- zu Dezimalformat int10 = Konvertieren.ToInt32(str2,2);
//-------------------------------------------------------------------------------
Wie erhält C# Serialport eine Menge hexadezimaler Zahlen? Wie erhält C# SerialPort eine Menge hexadezimaler Zahlen und wie sollte das Programm geschrieben werden? Beste Antwort System.IO.Ports.SerialPort sp = neues System.IO.Ports.SerialPort("COM1"); int-Puffergröße = 6; Die Größe der hexadezimalen Zahl (sagen wir 6 Byte) Byte[] buffer = neuer Byte[buffersize]; Erstellen Sie einen Puffer Sp. Read(buffer, 0, buffersize); Lies aus COM1
Diese Menge hexadezimaler Zahlen wird verarbeitet
C#-Serialport sendet Daten Kopfgeldpunkte: 5 - Auflösungszeit: 19.10.2009 21:15 Ich möchte einen Hex-Befehl an den seriellen Port senden, die Befehlsfolge lautet: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Wie kann ich die obige Zeichenkette numerisch umwandeln, sodass der Seriellport des Computers weiß, dass die gesendete Zeichenkette hexadezimal ist? Fragezusatz: Wer hat so einen Beispielcode? Bitte helft mir, ich bin Hardware-Hersteller, kenne mich mit Software nicht aus, ich hoffe, der Master kann einen detaillierten Code geben, danke! Fragesteller: daishuanqing – Praktikantenstufe 1 Beste Antwort Fügen Sie eine Referenz hinzu: Microsoft.VisualBasic (ist C#-Code, muss aber referenziert werden). )
Durchlaufe die SerialPortNames mit Folgendem, um alle seriellen Ports zu erhalten Microsoft.VisualBasic.Devices.Computer pc = neuer Microsoft.VisualBasic.Devices.Computer(); foreach (Strings s im PC. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Anschließend wird der angezeigte serielle Portname comName verwendet, um das Operationsobjekt zu erhalten. Du kannst diesen seriellen Anschluss öffnen:
System.IO.Ports.SerialPort com = neues System.IO.Ports.SerialPort(comName); com. Open();
Daten können dann auf den seriellen Anschluss geschrieben werden
Daten an den seriellen Port senden: com. WriteLine(this.textBox1.Text); Byte-Arrays können auch geschrieben werden com. Write(bArray,0,5); Es bezieht sich auf die 5 Bytes, die bei 0 beginnen und das Byte-Array bArray schreiben
Daten können ebenfalls akzeptiert werden: com. ReadLine() Es ist auch möglich, Bytes zu lesen com. ReadByte();
Abschließend ist es geschlossen: com. Close();
Konvertiere außerdem die hexadezimale Zeichenkette in ein Byte Byte b = Convert.ToByte("1A",16); C#-Serialport sendet Daten Kopfgeldpunkte: 5 - Auflösungszeit: 19.10.2009 21:15 Ich möchte einen Hex-Befehl an den seriellen Port senden, die Befehlsfolge lautet: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Wie kann ich die obige Zeichenkette numerisch umwandeln, sodass der Seriellport des Computers weiß, dass die gesendete Zeichenkette hexadezimal ist? Fragezusatz: Wer hat so einen Beispielcode? Bitte helft mir, ich bin Hardware-Hersteller, kenne mich mit Software nicht aus, ich hoffe, der Master kann einen detaillierten Code geben, danke! Fragesteller: daishuanqing – Praktikantenstufe 1 Beste Antwort Fügen Sie eine Referenz hinzu: Microsoft.VisualBasic (ist C#-Code, muss aber referenziert werden). )
Durchlaufe die SerialPortNames mit Folgendem, um alle seriellen Ports zu erhalten Microsoft.VisualBasic.Devices.Computer pc = neuer Microsoft.VisualBasic.Devices.Computer(); foreach (Strings s im PC. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Anschließend wird der angezeigte serielle Portname comName verwendet, um das Operationsobjekt zu erhalten. Du kannst diesen seriellen Anschluss öffnen:
System.IO.Ports.SerialPort com = neues System.IO.Ports.SerialPort(comName); com. Open();
Daten können dann auf den seriellen Anschluss geschrieben werden
Daten an den seriellen Port senden: com. WriteLine(this.textBox1.Text); Byte-Arrays können auch geschrieben werden com. Write(bArray,0,5); Es bezieht sich auf die 5 Bytes, die bei 0 beginnen und das Byte-Array bArray schreiben
Daten können ebenfalls akzeptiert werden: com. ReadLine() Es ist auch möglich, Bytes zu lesen com. ReadByte();
Abschließend ist es geschlossen: com. Close();
Konvertiere außerdem die hexadezimale Zeichenkette in ein Byte Byte b = Convert.ToByte("1A",16); |