C# 2, 10, 16 en 16 en hun ASCII-codes --------//Conversie van verschillende tekentypen in C# voor seriële poortcommunicatie------------
Begrip van tekenlengte string s = "Ik ben een 2-soldaat"; int len = s.Lengte; 6 personages byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Lengte; 11 bytes
Het heeft geen zin om decimaal naar string om te zetten, en het moet worden omgezet naar de bijbehorende ASCII-code int t1 = 81; Snaar S1 = T1. ToString(); Deze decimale conversie komt overeen met ASCII-karakters, om het logisch te maken. s1 = ((karakter)t1). ToString();
Hexadecimaal naar snaar: Dit slaat nergens op. Het is tostring. int intAB = 0x16; s1 = intAB.ToString(); Hexadecimale naar ASCII-karakters: byte babb = 0x45; string ass = ((char)babb). ToString();
ASCII-strings tot decimale getallen snaar tr = "2Ab Liu"; string d =""; voor (int i = 0; Ik < TR. Lengte; i++) { int ii = (int)Convert.ToChar(tr. Substring(i, 1)); d = d +" "+ ii.ToString(); }
ASCII-string naar hexadecimaal getal snaar s2 = "2Ab Liu"; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = nieuwe StringBuilder(); foreach (byte b in BA) { SB. Append(b.ToString("x") + " "); }
Hexadecimaal tot decimaal int intA = 0x16; Bij het definiëren moet het 0x zijn snaar strA = "16"; Snaren kunnen zonder zijn int intA1 = Convert.ToInt32(intA); int intA2 = Convert.ToInt32(strA, 16);
10 tot 16 strA = Convert.ToString(intA2, 16);
Van decimaal tot binair is hexadecimaal vergelijkbaar int int10 = 10; string str2 = Convert.ToString(int10,2);
Binair naar decimaal int10 = Convert.ToInt32(str2,2);
//-------------------------------------------------------------------------------
Hoe ontvangt c# serialport een set hexadecimale getallen Hoe ontvangt C# SerialPort een set hexadecimale getallen, en hoe moet het programma worden geschreven? Beste antwoord System.IO.Ports.SerialPort sp = nieuwe System.IO.Ports.SerialPort ("COM1"); int buffersize = 6; De grootte van het hexadecimale getal (laten we zeggen 6Byte) Byte[] buffer = nieuwe Byte[buffersize]; Maak een buffer Sp. Read(buffer, 0, buffersize); Lees uit COM1
Deze set hexadecimale getallen wordt verwerkt
C# seriële poort verzendt data Bountypunten: 5 - Resolutietijd: 2009-10-19 21:15 Ik wil een hex-commando naar de seriële poort sturen, de commandoreeks is: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Hoe kan ik bovenstaande string numeriek omzetten zodat de seriële poort van de computer weet dat de string die ik heb verzonden hexadecimaal is? Vraagsupplement: Wie heeft zo'n voorbeeldcode, help me alsjeblieft, ik ben een hardwarefabrikant, niet bekend met software, ik hoop dat de master een gedetailleerde code kan geven, dank je wel! Vraagsteller: daishuanqing - Stagiair Niveau 1 Beste antwoord Voeg een referentie toe: Microsoft.VisualBasic (is C#-code, maar moet worden geraadpleegd). )
Doorloop de SerialPortNames met het volgende om alle seriële poorten te krijgen Microsoft.VisualBasic.Devices.Computer pc = nieuwe Microsoft.VisualBasic.Devices.Computer(); Foreach (string s in pc. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Vervolgens wordt de weergegeven seriële poortnaam comName gebruikt om het operatieobject te verkrijgen. Je kunt deze seriële poort openen:
System.IO.Ports.SerialPort com = nieuwe System.IO.Ports.SerialPort(comName); com. Open();
Data kan vervolgens naar de seriële poort worden geschreven
Gegevens naar seriële poort sturen: com. WriteLine(this.textBox1.Text); byte-arrays kunnen ook worden geschreven com. Write(bArray,0,5); Het verwijst naar de 5 bytes die vanaf 0 beginnen en die de byte-array bArray schrijven
Gegevens kunnen ook worden geaccepteerd: com. ReadLine() Het is ook mogelijk om bytes te lezen com. ReadByte();
Ten slotte is het gesloten: com. Close();
Converteer ook de hexadecimale string naar byte byte b = Convert.ToByte("1A",16); C# seriële poort verzendt data Bountypunten: 5 - Resolutietijd: 2009-10-19 21:15 Ik wil een hex-commando naar de seriële poort sturen, de commandoreeks is: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Hoe kan ik bovenstaande string numeriek omzetten zodat de seriële poort van de computer weet dat de string die ik heb verzonden hexadecimaal is? Vraagsupplement: Wie heeft zo'n voorbeeldcode, help me alsjeblieft, ik ben een hardwarefabrikant, niet bekend met software, ik hoop dat de master een gedetailleerde code kan geven, dank je wel! Vraagsteller: daishuanqing - Stagiair Niveau 1 Beste antwoord Voeg een referentie toe: Microsoft.VisualBasic (is C#-code, maar moet worden geraadpleegd). )
Doorloop de SerialPortNames met het volgende om alle seriële poorten te krijgen Microsoft.VisualBasic.Devices.Computer pc = nieuwe Microsoft.VisualBasic.Devices.Computer(); Foreach (string s in pc. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Vervolgens wordt de weergegeven seriële poortnaam comName gebruikt om het operatieobject te verkrijgen. Je kunt deze seriële poort openen:
System.IO.Ports.SerialPort com = nieuwe System.IO.Ports.SerialPort(comName); com. Open();
Data kan vervolgens naar de seriële poort worden geschreven
Gegevens naar seriële poort sturen: com. WriteLine(this.textBox1.Text); byte-arrays kunnen ook worden geschreven com. Write(bArray,0,5); Het verwijst naar de 5 bytes die vanaf 0 beginnen en die de byte-array bArray schrijven
Gegevens kunnen ook worden geaccepteerd: com. ReadLine() Het is ook mogelijk om bytes te lezen com. ReadByte();
Ten slotte is het gesloten: com. Close();
Converteer ook de hexadecimale string naar byte byte b = Convert.ToByte("1A",16); |