C# 2, 10, 16 och 16 samt deras ASCII-koder --------//Konvertering av olika teckentyper i C# för seriell portkommunikation------------
Förståelse av teckenlängd strängar s = "Jag är en 2-soldat"; int len = s.Längd; 6 karaktärer byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Längd; 11 byte
Det är meningslöst att konvertera decimal till sträng, och den måste konverteras till motsvarande ASCII-kod int t1 = 81; sträng s1 = t1. ToString(); Denna decimalkonvertering motsvarar ASCII-tecken för att vara begriplig. s1 = ((tecken)t1). ToString();
Hexadecimal till sträng: Det här är inte logiskt. Det är tostring. int intAB = 0x16; s1 = intAB.ToString(); Hexadecimal till ASCII-tecken: byte babb = 0x45; strängras = ((karaktär)babb). ToString();
ASCII-strängar till decimaltal sträng tr = "2Ab Liu"; sträng d =""; för (int i = 0; Jag < TR. Längd; i++) { int ii = (int)Konvertera.Till Char(övers. delsträng(i, 1)); d = d +" "+ ii.ToString(); }
ASCII-sträng till hexadecimaltal sträng s2 = "2Ab Liu"; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = ny StringBuilder(); foreach (byte b i BA) { SB. Append(b.ToString("x") + " "); }
Hexadecimal till decimal int intA = 0x16; När man definierar måste den vara 0x strängstrA = "16"; Strängar kan vara utan int intA1 = Konvertera.TillInt32(intA); int intA2 = Konvertera.TillInt32(strA, 16);
10 till 16 strA = Konvertera.TillSträng(intA2, 16);
Decimal till binär är hexadecimal liknande int int10 = 10; sträng str2 = Konvertera.TillSträng(int10,2);
Binära till decimal int10 = Konvertera.TillInt32(str2,2);
//-------------------------------------------------------------------------------
Hur får c# serialport en uppsättning hexadecimala tal? Hur tar C# SerialPort emot en uppsättning hexadecimala tal, och hur bör programmet skrivas? Bästa svaret System.IO.Ports.SerialPort sp = nya System.IO.Ports.SerialPort ("COM1"); int-buffertstorlek = 6; Storleken på det hexadecimala talet (säg 6 byte) Byte[] buffer = ny byte[buffersize]; Skapa en buffert Stav. Läs (buffert, 0, bufferstorlek); Läs från COM1
Denna uppsättning hexadecimala tal bearbetas
C# serieport skickar data Uppdragspoäng: 5 - Upplösningstid: 2009-10-19 21:15 Jag vill skicka ett hex-kommando till den seriella porten, kommandosträngen är: "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" Hur kan jag konvertera ovanstående sträng numeriskt så att datorns serieport vet att strängen jag skickade är hexadecimal? Frågetillägg: Vem har en sådan exempelkod, snälla hjälp mig, jag är hårdvarutillverkare, inte bekant med mjukvara, jag hoppas att mästaren kan ge en detaljerad kod, tack! Frågeställare: daishuanqing - Praktikant nivå 1 Bästa svaret Lägg till en referens: Microsoft.VisualBasic (är C#-kod, men den måste refereras.) )
Gå igenom SerialPortNames med följande för att få alla serieportar Microsoft.VisualBasic.Devices.Computer pc = ny Microsoft.VisualBasic.Devices.Computer(); Foreach (sträng s i PC. Portar.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Därefter används det seriella portnamnet comName som visas för att hämta operationsobjektet. Du kan öppna denna serieport:
System.IO.Ports.SerialPort com = nya System.IO.Ports.SerialPort(comName); com. Open();
Data kan sedan skrivas till den seriella porten
Skicka data till serieporten: com. WriteLine(this.textBox1.Text); Bytearrayer kan också skrivas com. Skriv(bArray,0,5); Det syftar på de 5 byte som börjar från 0 och skriver bytearrayen bArray
Data kan också accepteras: com. ReadLine() Det är också möjligt att läsa bytes com. ReadByte();
Slutligen är den avslutad: com. Close();
Konvertera också den hexadecimala strängen till byte byte b = Konvertera.Tillbyte("1A",16); C# serieport skickar data Uppdragspoäng: 5 - Upplösningstid: 2009-10-19 21:15 Jag vill skicka ett hex-kommando till den seriella porten, kommandosträngen är: "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" Hur kan jag konvertera ovanstående sträng numeriskt så att datorns serieport vet att strängen jag skickade är hexadecimal? Frågetillägg: Vem har en sådan exempelkod, snälla hjälp mig, jag är hårdvarutillverkare, inte bekant med mjukvara, jag hoppas att mästaren kan ge en detaljerad kod, tack! Frågeställare: daishuanqing - Praktikant nivå 1 Bästa svaret Lägg till en referens: Microsoft.VisualBasic (är C#-kod, men den måste refereras.) )
Gå igenom SerialPortNames med följande för att få alla serieportar Microsoft.VisualBasic.Devices.Computer pc = ny Microsoft.VisualBasic.Devices.Computer(); Foreach (sträng s i PC. Portar.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Därefter används det seriella portnamnet comName som visas för att hämta operationsobjektet. Du kan öppna denna serieport:
System.IO.Ports.SerialPort com = nya System.IO.Ports.SerialPort(comName); com. Open();
Data kan sedan skrivas till den seriella porten
Skicka data till serieporten: com. WriteLine(this.textBox1.Text); Bytearrayer kan också skrivas com. Skriv(bArray,0,5); Det syftar på de 5 byte som börjar från 0 och skriver bytearrayen bArray
Data kan också accepteras: com. ReadLine() Det är också möjligt att läsa bytes com. ReadByte();
Slutligen är den avslutad: com. Close();
Konvertera också den hexadecimala strängen till byte byte b = Konvertera.Tillbyte("1A",16); |