C# 2, 10, 16 a 16 a jejich ASCII kódy --------//Převod různých typů znaků v C# pro komunikaci se sériovými porty------------
Porozumění délce znaků string s = "Jsem voják 2"; int len = s.délka; 6 postav byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Délka; 11 bajtů
Nemá smysl převádět desetinnou frekvenci na řetězec a musí být převedena do odpovídajícího ASCII kódu int t1 = 81; Řetězec s1 = T1. ToString(); Tento desetinný převod odpovídá ASCII znacicím pro smysl. s1 = (char)t1). ToString();
Hexadecimální na řetězec: To nedává smysl. Je to tostring. intAB = 0x16; s1 = intAB.ToString(); Znaky hexadecimálního až ASCII: byte babb = 0x45; string ass = ((char)babb). ToString();
ASCII řetězce na desetinná čísla struna tr = "2Ab Liu"; struna d =""; pro (int i = 0; Já < TR. Délka; i++) { int ii = (int)Convert.ToChar(tr. Podřetězec(i, 1)); d = d +" "+ ii.ToString(); }
ASCII řetězec na hexadecimální číslo struna s2 = "2Ab Liu"; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = nový StringBuilder(); Foreach (bajt B v Ba) { SB. Append(b.ToString("x") + " "); }
Od šestnáctky do desetinné fáze intA = 0x16; Při definování musí být 0x struna strA = "16"; Struny mohou být bez intA1 = Konvert.ToInt32(intA); int intA2 = Konvertovat.ToInt32(strA, 16);
10 až 16 strA = Convert.ToString(intA2, 16);
Od desetinné po binární je hexadecimální podobná int10 = 10; string str2 = Convert.ToString(int10,2);
Binární až desetinný int10 = Convert.ToInt32(str2,2);
//-------------------------------------------------------------------------------
Jak c# serialport přijímá sadu hexadecimálních čísel Jak C# SerialPort přijímá sadu hexadecimálních čísel a jak by měl být program napsán? Nejlepší odpověď System.IO.Ports.SerialPort sp = nový System.IO.Ports.SerialPort("COM1"); int buffersize = 6; Velikost šestnáctkového čísla (řekněme 6 bajtů) Byte[] buffer = nový Byte[buffersize]; Vytvořte buffer SP. Read(buffer, 0, buffersize); Čtěte z COM1
Tato sada šestnáctkových čísel je zpracovávána
Sériový port v C# odesílá data Odměny: 5 - Čas vyřešení: 2009-10-19 21:15 Chci poslat hexadecimabilní příkaz na sériový port, řetězec příkazů je: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Jak mohu výše uvedený řetězec převést číselně, aby sériový port počítače věděl, že řetězec, který jsem poslal, je hexadecimální? Doplněk k otázce: Kdo má takový vzorový kód, prosím, pomozte mi, jsem výrobce hardwaru, neznám software, doufám, že master poskytne podrobný kód, děkuji! Tazající: daishuanqing - Stážista úroveň 1 Nejlepší odpověď Přidejte odkaz: Microsoft.VisualBasic (je to kód v C#, ale je potřeba ho uvádět.) )
Projděte SerialPortNames s následujícími způsoby, abyste získali všechny sériové porty Microsoft.VisualBasic.Devices.Computer pc = nový Microsoft.VisualBasic.Devices.Computer(); foreach (řetězec s v PC. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Poté se k získání operačního objektu použije zobrazené sériové portové jméno comName. Tento sériový port můžete otevřít:
System.IO.Ports.SerialPort com = nový System.IO.Ports.SerialPort(comName); com. Open();
Data pak lze zapsat na sériový port
Odesílání dat na sériový port: com. WriteLine(this.textBox1.Text); bajtová pole lze také zapisovat com. Write(bArray,0,5); Označuje 5 bajtů začínajících od 0, které zapisují bajtové pole bArray
Data lze také přijímat: com. ReadLine() Je také možné číst bajty com. ReadByte();
Nakonec je uzavřený: com. Close();
Také převeďte šestnáctkový řetězec na bajt byte b = Convert.ToByte("1A",16); Sériový port v C# odesílá data Odměny: 5 - Čas vyřešení: 2009-10-19 21:15 Chci poslat hexadecimabilní příkaz na sériový port, řetězec příkazů je: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Jak mohu výše uvedený řetězec převést číselně, aby sériový port počítače věděl, že řetězec, který jsem poslal, je hexadecimální? Doplněk k otázce: Kdo má takový vzorový kód, prosím, pomozte mi, jsem výrobce hardwaru, neznám software, doufám, že master poskytne podrobný kód, děkuji! Tazající: daishuanqing - Stážista úroveň 1 Nejlepší odpověď Přidejte odkaz: Microsoft.VisualBasic (je to kód v C#, ale je potřeba ho uvádět.) )
Projděte SerialPortNames s následujícími způsoby, abyste získali všechny sériové porty Microsoft.VisualBasic.Devices.Computer pc = nový Microsoft.VisualBasic.Devices.Computer(); foreach (řetězec s v PC. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Poté se k získání operačního objektu použije zobrazené sériové portové jméno comName. Tento sériový port můžete otevřít:
System.IO.Ports.SerialPort com = nový System.IO.Ports.SerialPort(comName); com. Open();
Data pak lze zapsat na sériový port
Odesílání dat na sériový port: com. WriteLine(this.textBox1.Text); bajtová pole lze také zapisovat com. Write(bArray,0,5); Označuje 5 bajtů začínajících od 0, které zapisují bajtové pole bArray
Data lze také přijímat: com. ReadLine() Je také možné číst bajty com. ReadByte();
Nakonec je uzavřený: com. Close();
Také převeďte šestnáctkový řetězec na bajt byte b = Convert.ToByte("1A",16); |