C# 2, 10, 16 og 16 og deres ASCII-koder --------//Konvertering av ulike tegntyper i C# for seriell portkommunikasjon------------
Forståelse av tegnlengde streng s = "Jeg er en 2-soldat"; int len = s.Lengde; 6 karakterer byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Lengde; 11 byte
Det gir ingen mening å konvertere desimal til streng, og det må konverteres til tilsvarende ASCII-kode int t1 = 81; Streng S1 = T1. ToString(); Denne desimalkonverteringen tilsvarer ASCII-tegn for å gi mening. s1 = ((karakter)t1). ToString();
Heksadesimal til streng: Dette gir ikke mening. Det er tostring. int intAB = 0x16; s1 = intAB.ToString(); Heksadesimal til ASCII-tegn: byte babb = 0x45; streng ass = ((karakter)babb). ToString();
ASCII-strenger til desimaltall streng tr = "2Ab Liu"; streng d =""; for (int i = 0; Jeg < TR. Lengde; i++) { int ii = (int)Konverter.Til Char(tr. Delstreng(i, 1)); d = d +" "+ ii.ToString(); }
ASCII-streng til heksadesimaltall streng 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") + " "); }
Heksadesimal til desimal int intA = 0x16; Når man definerer, må det være 0x strengstrA = "16"; Strenger kan være uten int intA1 = Konverter.TilInt32(intA); int intA2 = Konverter.TilInt32(strA, 16);
10 til 16 strA = Konverter.tilStreng(intA2, 16);
Desimal til binær, heksadesimal er likt int int10 = 10; streng str2 = Konverter.TilStreng(int10,2);
Binær til desimal int10 = Konverter.TilInt32(str2,2);
//-------------------------------------------------------------------------------
Hvordan mottar c# serialport et sett med heksadesimale tall Hvordan mottar C# SerialPort et sett med heksadesimale tall, og hvordan bør programmet skrives? Beste svar System.IO.Ports.SerialPort sp = nye System.IO.Ports.SerialPort ("COM1"); int-bufferstørrelse = 6; Størrelsen på heksadesimaltallet (la oss si 6 byte) Byte[] buffer = ny byte[buffersize]; Lag en buffer Sp. Read(buffer, 0, buffersize); Les fra COM1
Dette settet med heksadesimale tall behandles
C# seriell port sender data Dusørpoeng: 5 - Oppløsningstid: 2009-10-19 21:15 Jeg vil sende en hex-kommando til den serielle porten, kommandostrengen er: "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" Hvordan kan jeg konvertere strengen ovenfor numerisk slik at datamaskinens serieport vet at strengen jeg sendte er heksadesimal? Spørsmålstillegg: Hvem har en slik eksempelkode, vær så snill å hjelp meg, jeg er en maskinvareprodusent, ikke kjent med programvare, jeg håper masteren kan gi en detaljert kode, takk! Spørsmålsstiller: daishuanqing - Intern nivå 1 Beste svar Legg til en referanse: Microsoft.VisualBasic (er C#-kode, men den må refereres.) )
Gå gjennom SerialPortNames med følgende for å få alle serieportene Microsoft.VisualBasic.Devices.Computer pc = ny Microsoft.VisualBasic.Devices.Computer(); foreach (streng s i PC. Porter.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Deretter brukes det serielle portnavnet comName som vises for å hente operasjonsobjektet. Du kan åpne denne serieporten:
System.IO.Ports.SerialPort com = ny System.IO.Ports.SerialPort(comName); com. Open();
Data kan deretter skrives til den serielle porten
Sending av data til seriell port: com. WriteLine(this.textBox1.Text); Bytematriser kan også skrives com. Write(bArray,0,5); Det refererer til de 5 bytene som starter fra 0 og skriver byte-arrayet bArray
Data kan også aksepteres: com. ReadLine() Det er også mulig å lese bytes com. ReadByte();
Til slutt er den avsluttet: com. Close();
Konverter også den heksadesimale strengen til byte byte b = Convert.ToByte("1A",16); C# seriell port sender data Dusørpoeng: 5 - Oppløsningstid: 2009-10-19 21:15 Jeg vil sende en hex-kommando til den serielle porten, kommandostrengen er: "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" Hvordan kan jeg konvertere strengen ovenfor numerisk slik at datamaskinens serieport vet at strengen jeg sendte er heksadesimal? Spørsmålstillegg: Hvem har en slik eksempelkode, vær så snill å hjelp meg, jeg er en maskinvareprodusent, ikke kjent med programvare, jeg håper masteren kan gi en detaljert kode, takk! Spørsmålsstiller: daishuanqing - Intern nivå 1 Beste svar Legg til en referanse: Microsoft.VisualBasic (er C#-kode, men den må refereres.) )
Gå gjennom SerialPortNames med følgende for å få alle serieportene Microsoft.VisualBasic.Devices.Computer pc = ny Microsoft.VisualBasic.Devices.Computer(); foreach (streng s i PC. Porter.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Deretter brukes det serielle portnavnet comName som vises for å hente operasjonsobjektet. Du kan åpne denne serieporten:
System.IO.Ports.SerialPort com = ny System.IO.Ports.SerialPort(comName); com. Open();
Data kan deretter skrives til den serielle porten
Sending av data til seriell port: com. WriteLine(this.textBox1.Text); Bytematriser kan også skrives com. Write(bArray,0,5); Det refererer til de 5 bytene som starter fra 0 og skriver byte-arrayet bArray
Data kan også aksepteres: com. ReadLine() Det er også mulig å lese bytes com. ReadByte();
Til slutt er den avsluttet: com. Close();
Konverter også den heksadesimale strengen til byte byte b = Convert.ToByte("1A",16); |