C# 2, 10, 16 e 16 e seus códigos ASCII --------//Conversão de vários tipos de caracteres em C# para comunicação por porta serial------------
Compreensão do comprimento dos caracteres string s = "Eu sou um soldado 2"; int len = s. Comprimento; 6 personagens byte[] sarr = System.Text.Encoding.Default.GetBytes(s); Len = sarr. Comprimento; 11 bytes
Não faz sentido converter um decimal para uma string, e ela deve ser convertida para o correspondente código ASCII int t1 = 81; String S1 = T1. ToString(); Essa conversão decimal corresponde a caracteres ASCII para fazer sentido. s1 = ((char)t1). ToString();
Hexadecimal para string: Isso não faz sentido. É a corda. int intAB = 0x16; s1 = intAB.ToString(); Caracteres de hexadecimal a ASCII: byte babb = 0x45; string ass = ((char)babb). ToString();
Cadeias ASCII para números decimais string tr = "2Ab Liu"; string d =""; para (int i = 0; Eu < tr. Comprimento; i++) { int ii = (int)Convert.ToChar(tr. Substring(i, 1)); d = d +" "+ ii.ToString(); }
Cadeia ASCII para número hexadecimal string s2 = "2Ab Liu"; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = novo StringBuilder(); foreach (byte b em ba) { SB. Anexar(b.ParaCorda("x") + " "); }
Hexadecimal a decimal int intA = 0x16; Ao definir, deve ser 0x stringA = "16"; As cordas podem ser sem int intA1 = Convert.ToInt32(intA); int intA2 = Convert.ToInt32(strA, 16);
10 a 16 strA = Convert.ToString(intA2, 16);
De decimal a binário, hexadecimal é semelhante int int10 = 10; string str2 = Convert.ToString(int10,2);
Binário para decimal int10 = Convert.ToInt32(str2,2);
//-------------------------------------------------------------------------------
Como o serialport em C# recebe um conjunto de números hexadecimais Como o C# SerialPort recebe um conjunto de números hexadecimais, e como o programa deve ser escrito? Melhor resposta System.IO.Ports.SerialPort sp = novo System.IO.Ports.SerialPort("COM1"); int buffersize = 6; O tamanho do número hexadecimal (digamos 6 bytes) Byte[] buffer = novo Byte[buffersize]; Crie um buffer sp. Leitura (buffer, 0, buffersize); Lido do COM1
Esse conjunto de números hexadecimais é processado
Porta serial C# envia dados Pontos de recompensa: 5 - Tempo de resolução: 2009-10-19 21:15 Quero enviar um comando hexadecimal para a porta serial, a string de comando é: "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" Como posso converter a string acima numericamente para que a porta serial do computador saiba que a string que enviei é hexadecimal? Suplemento de pergunta: Quem tem um código de exemplo assim, por favor, me ajude, sou fabricante de hardware, não familiarizado com software, espero que o mestre possa fornecer um código detalhado, obrigado! Perguntador: daishuanqing - Estagiário Nível 1 Melhor resposta Adicione uma referência: Microsoft.VisualBasic (é código C#, mas precisa ser referenciado.) )
Percorra os SerialPortNames com o seguinte para obter todas as portas seriais Microsoft.VisualBasic.Devices.Computer pc = novo Microsoft.VisualBasic.Devices.Computer(); Foreach (string s em pc. Portas.NomesSerialPortNomes)
{ this.comboBox1.Items.Add(s);
}
Depois, o nome da porta serial comName exibido é usado para obter o objeto de operação. Você pode abrir esta porta serial:
System.IO.Ports.SerialPort com = novo System.IO.Ports.SerialPort(comName); com. Aberto();
Os dados podem então ser gravados na porta serial
Enviando dados para a porta serial: com. WriteLine(this.textBox1.Text); Arrays de bytes também podem ser escritos com. Escrever(bArray,0,5); Refere-se aos 5 bytes começando de 0 que escrevem o array de bytes bArray
Os dados também podem ser aceitos: com. ReadLine() Também é possível ler bytes com. ReadByte();
Por fim, está fechado: com. Fechar();
Além disso, converta a cadeia hexadecimal em byte byte b = Convert.ToByte("1A",16); Porta serial C# envia dados Pontos de recompensa: 5 - Tempo de resolução: 2009-10-19 21:15 Quero enviar um comando hexadecimal para a porta serial, a string de comando é: "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" Como posso converter a string acima numericamente para que a porta serial do computador saiba que a string que enviei é hexadecimal? Suplemento de pergunta: Quem tem um código de exemplo assim, por favor, me ajude, sou fabricante de hardware, não familiarizado com software, espero que o mestre possa fornecer um código detalhado, obrigado! Perguntador: daishuanqing - Estagiário Nível 1 Melhor resposta Adicione uma referência: Microsoft.VisualBasic (é código C#, mas precisa ser referenciado.) )
Percorra os SerialPortNames com o seguinte para obter todas as portas seriais Microsoft.VisualBasic.Devices.Computer pc = novo Microsoft.VisualBasic.Devices.Computer(); Foreach (string s em pc. Portas.NomesSerialPortNomes)
{ this.comboBox1.Items.Add(s);
}
Depois, o nome da porta serial comName exibido é usado para obter o objeto de operação. Você pode abrir esta porta serial:
System.IO.Ports.SerialPort com = novo System.IO.Ports.SerialPort(comName); com. Aberto();
Os dados podem então ser gravados na porta serial
Enviando dados para a porta serial: com. WriteLine(this.textBox1.Text); Arrays de bytes também podem ser escritos com. Escrever(bArray,0,5); Refere-se aos 5 bytes começando de 0 que escrevem o array de bytes bArray
Os dados também podem ser aceitos: com. ReadLine() Também é possível ler bytes com. ReadByte();
Por fim, está fechado: com. Fechar();
Além disso, converta a cadeia hexadecimal em byte byte b = Convert.ToByte("1A",16); |