C# 2, 10, 16 i 16 oraz ich kody ASCII --------//Konwersja różnych typów znaków w C# do komunikacji portów szeregowych------------
Zrozumienie długości znaków string s = "Jestem żołnierzem 2"; int len = s.długość; 6 postaci byte[] sarr = System.Text.Encoding.Default.GetBytes(s); Len = Sarr. Długość; 11 bajtów
Nie ma sensu przekształcać dziesiętnego na ciąg łańcuchowy, więc musi być konwertowany na odpowiadający mu kod ASCII int t1 = 81; Ciąg s1 = T1. ToString(); Ta konwersja dziesiętna odpowiada znakom ASCII, aby mieć sens. s1 = ((char)t1). ToString();
Szesnastkowo do struna: To nie ma sensu. To jest struna. intAB = 0x16; s1 = intAB.ToString(); Znaki szesnastkowe do ASCII: byte babb = 0x45; string ass = (char)babb). ToString();
Ciągi ASCII do liczb dziesiętnych string tr = "2Ab Liu"; łańcuch d =""; dla (int i = 0; I < Tr. Długość; i++) { int ii = (int)Convert.ToChar(tłum. Podciąg(i, 1)); d = d +" "+ ii.ToString(); }
Ciąg ASCII do liczby szesnastkowej struna s2 = "2Ab Liu"; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = nowy StringBuilder(); foreach (bajt b w BA) { SB. Append(b.ToString("x") + " "); }
Od szesnastka do dziesiętnego intA = 0x16; Podczas definiowania musi być 0x struna strA = "16"; Struny mogą być bez intA1 = Convert.ToInt32(intA); int intA2 = Convert.ToInt32(strA, 16);
10 do 16 strA = Convert.ToString(intA2, 16);
Od dziesiętnego do binarnego, szesnastkowy jest podobny int10 = 10; string str2 = Convert.ToString(int10,2);
Od binarnego do dziesiętnego int10 = Convert.ToInt32(str2,2);
//-------------------------------------------------------------------------------
Jak c# serialport otrzymuje zestaw liczb szesnastkowych Jak C# SerialPort otrzymuje zestaw liczb szesnastkowych i jak powinien być napisany program? Najlepsza odpowiedź System.IO.Ports.SerialPort sp = nowy System.IO.Ports.SerialPort("COM1"); int buffersize = 6; Rozmiar liczby szesnastkowej (powiedzmy 6 bajtów) Bufor bajt[] = nowy bajt[rozmiar bufora]; Stwórz bufor SP. Read(buffer, 0, buffersize); Czytanie z COM1
Ten zestaw liczb szesteknastych jest przetwarzany
Port szeregowy C# przesyła dane Punkty nagrodowe: 5 - Czas rozwiązania: 2009-10-19 21:15 Chcę wysłać polecenie heksadecimalne na port szeregowy, ciąg poleceń to: "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" Jak mogę numerycznie przekonwertować powyższy ciąg danych, aby port szeregowy komputera wiedział, że wysłałem ciąg tekstu szesnastkowego? Dodatek do pytań: Kto ma taki przykładowy kod, proszę o pomoc, jestem producentem sprzętu, nie znam się na oprogramowaniu, mam nadzieję, że mistrz poda szczegółowy kod, dziękuję! Pytający: daishuanqing – stażysta poziom 1 Najlepsza odpowiedź Dodaj referencję: Microsoft.VisualBasic (to kod w C#, ale trzeba się do niego odwoływać). )
Przejrzyj nazwy portowe SerialPort, używając następujących połączeń, aby uzyskać wszystkie porty serialne Microsoft.VisualBasic.Devices.Computer pc = nowy Microsoft.VisualBasic.Devices.Computer(); foreach (ciąg S w PC. Porty.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Następnie wyświetlana nazwa portu szeregowego comName służy do uzyskania obiektu operacji. Możesz otworzyć ten port szeregowy:
System.IO.Ports.SerialPort com = nowy System.IO.Ports.SerialPort(comName); com. Open();
Dane mogą być następnie zapisywane na port szeregowy
Przesyłanie danych na port szeregowy: com. WriteLine(this.textBox1.Text); Tablice bajtowe mogą być również zapisywane com. Write(bArray,0,5); Odnosi się do 5 bajtów zaczynających od 0, które zapisują tablicę bajtów bArray
Dane mogą być również akceptowane: com. ReadLine() Możliwe jest także odczytywanie bajtów com. ReadByte();
Na koniec jest zamknięta: com. Close();
Przekonwertuj też ciąg szesnastkowy na bajt bajt b = Convert.ToByte("1A",16); Port szeregowy C# przesyła dane Punkty nagrodowe: 5 - Czas rozwiązania: 2009-10-19 21:15 Chcę wysłać polecenie heksadecimalne na port szeregowy, ciąg poleceń to: "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" Jak mogę numerycznie przekonwertować powyższy ciąg danych, aby port szeregowy komputera wiedział, że wysłałem ciąg tekstu szesnastkowego? Dodatek do pytań: Kto ma taki przykładowy kod, proszę o pomoc, jestem producentem sprzętu, nie znam się na oprogramowaniu, mam nadzieję, że mistrz poda szczegółowy kod, dziękuję! Pytający: daishuanqing – stażysta poziom 1 Najlepsza odpowiedź Dodaj referencję: Microsoft.VisualBasic (to kod w C#, ale trzeba się do niego odwoływać). )
Przejrzyj nazwy portowe SerialPort, używając następujących połączeń, aby uzyskać wszystkie porty serialne Microsoft.VisualBasic.Devices.Computer pc = nowy Microsoft.VisualBasic.Devices.Computer(); foreach (ciąg S w PC. Porty.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Następnie wyświetlana nazwa portu szeregowego comName służy do uzyskania obiektu operacji. Możesz otworzyć ten port szeregowy:
System.IO.Ports.SerialPort com = nowy System.IO.Ports.SerialPort(comName); com. Open();
Dane mogą być następnie zapisywane na port szeregowy
Przesyłanie danych na port szeregowy: com. WriteLine(this.textBox1.Text); Tablice bajtowe mogą być również zapisywane com. Write(bArray,0,5); Odnosi się do 5 bajtów zaczynających od 0, które zapisują tablicę bajtów bArray
Dane mogą być również akceptowane: com. ReadLine() Możliwe jest także odczytywanie bajtów com. ReadByte();
Na koniec jest zamknięta: com. Close();
Przekonwertuj też ciąg szesnastkowy na bajt bajt b = Convert.ToByte("1A",16); |