C# 2, 10, 16 y 16 y sus códigos ASCII --------//Conversión de varios tipos de caracteres en C# para la comunicación por puerto serial------------
Comprensión de la longitud de los caracteres cadenas s = "Soy un soldado 2"; int len = s. Longitud; 6 personajes byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Longitud; 11 bytes
No tiene sentido convertir decimal a cadena, y debe convertirse al código ASCII correspondiente int t1 = 81; Cadena S1 = T1. ToString(); Esta conversión decimal corresponde a caracteres ASCII para tener sentido. s1 = ((char)t1). ToString();
Hexadecimal a cadena: Esto no tiene sentido. Es la corda. int intAB = 0x16; s1 = intAB.ToString(); Caracteres hexadecimales a ASCII: byte babb = 0x45; String Ass = ((char)Babb). ToString();
Cadenas ASCII a números decimales string tr = "2Ab Liu"; cadena d =""; para (int i = 0; Yo < tr. Longitud; i++) { int ii = (int)Convert.ToChar(tr. Subcadena(i, 1)); d = d +" "+ ii.ToString(); }
Cadena ASCII a número hexadecimal cadena s2 = "2Ab Liu"; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = nuevo StringBuilder(); foreach (byte b en ba) { SB. Append(b.ToString("x") + " "); }
De hexadecimal a decimal int intA = 0x16; Al definir, debe ser 0x cuerdas A = "16"; Las cuerdas pueden estar sin int intA1 = Convert.ToInt32(intA); int intA2 = Convert.ToInt32(strA, 16);
10 a 16 strA = Convertir.ToString(intA2, 16);
Decimal a binario, el hexadecimal es similar int int10 = 10; string str2 = Convert.ToString(int10,2);
De binario a decimal int10 = Convert.ToInt32(str2,2);
//-------------------------------------------------------------------------------
¿Cómo recibe el puerto serial en c# un conjunto de números hexadecimales? ¿Cómo recibe C# SerialPort un conjunto de números hexadecimales y cómo debe escribirse el programa? Mejor respuesta System.IO.Puertos.SerialPort sp = nuevo System.IO.Ports.SerialPort("COM1"); int buffersize = 6; El tamaño del número hexadecimal (digamos 6 bytes) Byte[] buffer = nuevo Byte[buffersize]; Crear un buffer sp. Leído (buffer, 0, buffersize); Leído de COM1
Este conjunto de números hexadecimales se procesa
El puerto serie C# envía datos Puntos de recompensa: 5 - Tiempo de resolución: 19-10-2009 21:15 Quiero enviar un comando hexadecimal al puerto serie, la cadena de comandos es: "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" ¿Cómo puedo convertir la cadena anterior numéricamente para que el puerto serie del ordenador sepa que la cadena que envié es hexadecimal? Suplemento de preguntas: ¿Quién tiene un código de ejemplo así? Por favor, ayudadme, soy fabricante de hardware, no estoy familiarizado con el software, espero que el maestro pueda dar un código detallado, ¡gracias! Pregunta: daishuanqing - Becario Nivel 1 Mejor respuesta Añadir una referencia: Microsoft.VisualBasic (es código C#, pero necesita referencia). )
Recorre los SerialPortNames con lo siguiente para obtener todos los puertos serie Microsoft.VisualBasic.Devices.Computer pc = nuevo Microsoft.VisualBasic.Devices.Computer(); Foreach (cadena s en pc. Puertos.NombresSerialPuerto)
{ this.comboBox1.Items.Add(s);
}
Luego se utiliza el nombre del puerto serial comName que se muestra para obtener el objeto de operación. Puedes abrir este puerto serial:
System.IO.Puertos.SerialPort com = nuevo System.IO.Puertos.SerialPort(comName); com. Abierto();
Los datos pueden entonces escribirse en el puerto serie
Envío de datos al puerto serial: com. WriteLine(this.textBox1.Text); También se pueden escribir arrays de bytes com. Write(bArray,0,5); Se refiere a los 5 bytes que empiezan en 0 y que escriben el array de bytes bArray
También se pueden aceptar datos: com. ReadLine() También es posible leer bytes com. ReadByte();
Finalmente, está cerrado: com. Cerca();
Además, convierte la cadena hexadecimal a byte byte b = Convert.ToByte("1A",16); El puerto serie C# envía datos Puntos de recompensa: 5 - Tiempo de resolución: 19-10-2009 21:15 Quiero enviar un comando hexadecimal al puerto serie, la cadena de comandos es: "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" ¿Cómo puedo convertir la cadena anterior numéricamente para que el puerto serie del ordenador sepa que la cadena que envié es hexadecimal? Suplemento de preguntas: ¿Quién tiene un código de ejemplo así? Por favor, ayudadme, soy fabricante de hardware, no estoy familiarizado con el software, espero que el maestro pueda dar un código detallado, ¡gracias! Pregunta: daishuanqing - Becario Nivel 1 Mejor respuesta Añadir una referencia: Microsoft.VisualBasic (es código C#, pero necesita referencia). )
Recorre los SerialPortNames con lo siguiente para obtener todos los puertos serie Microsoft.VisualBasic.Devices.Computer pc = nuevo Microsoft.VisualBasic.Devices.Computer(); Foreach (cadena s en pc. Puertos.NombresSerialPuerto)
{ this.comboBox1.Items.Add(s);
}
Luego se utiliza el nombre del puerto serial comName que se muestra para obtener el objeto de operación. Puedes abrir este puerto serial:
System.IO.Puertos.SerialPort com = nuevo System.IO.Puertos.SerialPort(comName); com. Abierto();
Los datos pueden entonces escribirse en el puerto serie
Envío de datos al puerto serial: com. WriteLine(this.textBox1.Text); También se pueden escribir arrays de bytes com. Write(bArray,0,5); Se refiere a los 5 bytes que empiezan en 0 y que escriben el array de bytes bArray
También se pueden aceptar datos: com. ReadLine() También es posible leer bytes com. ReadByte();
Finalmente, está cerrado: com. Cerca();
Además, convierte la cadena hexadecimal a byte byte b = Convert.ToByte("1A",16); |