C# 2, 10, 16 ja 16 sekä niiden ASCII-koodit --------//Eri merkkityyppien muuntaminen C#:ssa sarjaporttiviestintää varten------------
Hahmon pituuden ymmärtäminen string s = "Olen 2 sotilas"; int len = s.Pituus; 6 hahmoa byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Pituus; 11 tavua
Ei ole järkevää muuntaa desimaalia merkkijonoksi, ja se täytyy muuntaa vastaavaksi ASCII-koodiksi int t1 = 81; merkkijono s1 = t1. ToString(); Tämä desimaalimuunnos vastaa ASCII-merkkejä, jotta se olisi järkevä. s1 = ((hahmo)t1). ToString();
Heksadesimaali merkkijonoon: Tämä ei käy järkeen. Se on Tostring. int intAB = 0x16; s1 = intAB.ToString(); Heksadesimaali ASCII-merkille: tavu babb = 0x45; string ass = ((char)babb). ToString();
ASCII-merkkijonot desimaalilukuihin string tr = "2Ab Liu"; merkkijono d =""; kun (int i = 0; Minä < tr. Pituus; i++) { int ii = (int)Convert.ToChar(tr. Alajono(i, 1)); d = d +" "+ ii.ToString(); }
ASCII-merkkijono heksadesimaalilukuon merkkijono s2 = "2Ab Liu"; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = uusi StringBuilder(); foreach (tavu b ba:ssa) { sb. Append(b.ToString("x") + " "); }
Heksadesimaalista desimaaliin int intA = 0x16; Kun määritetään, sen täytyy olla 0x string strA = "16"; Sävelet voivat olla ilman int intA1 = Convert.ToInt32(intA); int intA2 = Convert.ToInt32(strA, 16);
10–16 strA = Muunna. Merkkijonoksi(intA2, 16);
Desimaali ja binääri, heksadesimaali on samankaltainen int int10 = 10; string str2 = Convert.ToString(int10,2);
Binääristä desimaaliin int10 = Convert.ToInt32(str2,2);
//-------------------------------------------------------------------------------
Miten c#-sarjaportti vastaanottaa joukon heksadesimaalilukuja Miten C# SerialPort vastaanottaa joukon heksadesimaalilukuja, ja miten ohjelma tulisi kirjoittaa? Paras vastaus System.IO.Ports.SerialPort sp = uusi System.IO.Ports.SerialPort("COM1"); int puskurikoko = 6; Heksadesimaaliluvun koko (sanotaan vaikka 6Byte) Byte[] buffer = uusi Byte[buffersize]; Luo puskuri sp. Read(buffer, 0, buffersize); Lue COM1:stä
Tämä heksadesimaalilukujen joukko käsitellään
C#-sarjaportti lähettää dataa Palkkiopisteet: 5 - Ratkaisuaika: 2009-10-19 21:15 Haluan lähettää kuusikomennon sarjaporttiin, komentojono on: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Miten voin muuntaa yllä olevan merkkijonon numeerisesti niin, että tietokoneen sarjaportti tietää, että lähettämäni merkkijono on kuusikymmendesimaalinen? Kysymyslisä: Kenellä on tällainen esimerkkikoodi, auttakaa minua, olen laitevalmistaja, en tunne ohjelmistoja, toivottavasti mestari voi antaa yksityiskohtaisen koodin, kiitos! Kysyjä: daishuanqing - harjoittelija taso 1 Paras vastaus Lisää viite: Microsoft.VisualBasic (on C#-koodia, mutta siihen täytyy viitata mukaan). )
Selaa SerialPortNames-tiedostoja seuraavasti saadaksesi kaikki sarjaportit Microsoft.VisualBasic.Devices.Computer pc = uusi Microsoft.VisualBasic.Devices.Computer(); foreach (merkkijono s PC:ssä. Portit.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Sitten näytettyä sarjaportin nimeä comName käytetään operaatioobjektin saamiseksi. Voit avata tämän sarjaportin:
System.IO.Ports.SerialPort com = uusi System.IO.Ports.SerialPort(comName); com. Open();
Data voidaan sitten kirjoittaa sarjaportille
Datan lähettäminen sarjaporttiin: com. WriteLine(this.textBox1.Text); Tavutaulukoita voidaan myös kirjoittaa com. write(bArray,0,5); Se viittaa 5 tavuun, jotka alkavat nollasta ja kirjoittavat tavutaulukon bArray
Tietoja voidaan myös hyväksyä: com. ReadLine() Tavujen lukeminen on myös mahdollista com. ReadByte();
Lopuksi se on suljettu: com. Close();
Muunna myös heksadesimaalimerkkijono tavuksi tavu b = Muunna.ToTavu("1A",16); C#-sarjaportti lähettää dataa Palkkiopisteet: 5 - Ratkaisuaika: 2009-10-19 21:15 Haluan lähettää kuusikomennon sarjaporttiin, komentojono on: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Miten voin muuntaa yllä olevan merkkijonon numeerisesti niin, että tietokoneen sarjaportti tietää, että lähettämäni merkkijono on kuusikymmendesimaalinen? Kysymyslisä: Kenellä on tällainen esimerkkikoodi, auttakaa minua, olen laitevalmistaja, en tunne ohjelmistoja, toivottavasti mestari voi antaa yksityiskohtaisen koodin, kiitos! Kysyjä: daishuanqing - harjoittelija taso 1 Paras vastaus Lisää viite: Microsoft.VisualBasic (on C#-koodia, mutta siihen täytyy viitata mukaan). )
Selaa SerialPortNames-tiedostoja seuraavasti saadaksesi kaikki sarjaportit Microsoft.VisualBasic.Devices.Computer pc = uusi Microsoft.VisualBasic.Devices.Computer(); foreach (merkkijono s PC:ssä. Portit.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Sitten näytettyä sarjaportin nimeä comName käytetään operaatioobjektin saamiseksi. Voit avata tämän sarjaportin:
System.IO.Ports.SerialPort com = uusi System.IO.Ports.SerialPort(comName); com. Open();
Data voidaan sitten kirjoittaa sarjaportille
Datan lähettäminen sarjaporttiin: com. WriteLine(this.textBox1.Text); Tavutaulukoita voidaan myös kirjoittaa com. write(bArray,0,5); Se viittaa 5 tavuun, jotka alkavat nollasta ja kirjoittavat tavutaulukon bArray
Tietoja voidaan myös hyväksyä: com. ReadLine() Tavujen lukeminen on myös mahdollista com. ReadByte();
Lopuksi se on suljettu: com. Close();
Muunna myös heksadesimaalimerkkijono tavuksi tavu b = Muunna.ToTavu("1A",16); |