C# 2, 10, 16 и 16 и их ASCII-коды --------//Преобразование различных типов символов на C# для связи с последовательными портами------------
Понимание длины символа string s = «Я — солдат из 2»; int len = s.Длина; 6 персонажей byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Длина; 11 байт
Нет смысла преобразовывать десятичную в строку, и его необходимо преобразовать в соответствующий ASCII-код int t1 = 81; Строка s1 = t1. ToString(); Это десятичное преобразование соответствует ASCII-символам, чтобы было понятно. s1 = (((char)t1). ToString();
Шестнадцатеричное до струнного: это не имеет смысла. Это тострун. int intAB = 0x16; s1 = intAB.ToString(); Шестеричное по ASCII-символам: byte babb = 0x45; String ass = (((Чар)Бабб). ToString();
ASCII-строки в десятичные числа string tr = «2Ab Liu»; строка d =""; для (int i = 0; Я < TR. Длина; i++) { int ii = (int)Convert.ToChar(tr. Substring(i, 1)); d = d +" "+ ii.ToString(); }
ASCII string to hexadecimal number string s2 = «2Ab Liu»; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = новый StringBuilder(); Foreach (байт B в BA) { SB. Append(b.ToString("x") + ""); }
От шестнадцатеричного к десятичному int intA = 0x16; При определении он должен быть 0x струна strA = «16»; Струны могут быть без int intA1 = Convert.ToInt32(intA); int intA2 = Convert.ToInt32(strA, 16);
С 10 до 16 лет strA = Convert.ToString(intA2, 16);
От десятичного к двойному — шестнадцатеричный — похож int int10 = 10; строка str2 = Convert.ToString(int10,2);
От двоичной к десятичной int10 = Convert.ToInt32(str2,2);
//-------------------------------------------------------------------------------
Как сериальный порт C# получает набор шестнадцатеричных чисел Как C# SerialPort получает набор шестнадцатеричных чисел и как следует писать программу? Лучший ответ System.IO.Ports.SerialPort sp = новый System.IO.Ports.SerialPort("COM1"); int buffersize = 6; Размер шестнадцатеричного числа (скажем, 6 байт) Byte[] buffer = новый Byte[buffersize]; Создайте буфер sp. Read(buffer, 0, buffersize); Читайте из COM1
Этот набор шестнадцатеричных чисел обрабатывается
Последовательный порт C# отправляет данные Очки за награды: 5 - Время разрешения: 2009-10-19 21:15 Я хочу отправить шестнадцатеричную команду на последовательный порт, командная строка звучит так: "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" Как я могу преобразовать вышеуказанную строку в числовом порядке, чтобы последовательный порт компьютера знал, что отправленная мной строка шестеричной? Дополнение к вопросу: У кого есть такой пример кода, пожалуйста, помогите, я производитель оборудования, не знаком с программным обеспечением, надеюсь, мастер сможет дать подробный код, спасибо! Вопрос: дайшуаньцин — стажёр 1 уровня Лучший ответ Добавьте ссылку: Microsoft.VisualBasic (это код на C#, но на него нужно ссылаться). )
Пройдите SerialPortNames следующим образом, чтобы получить все последовательные порты Microsoft.VisualBasic.Devices.Computer pc = новый Microsoft.VisualBasic.Devices.Computer(); foreach (строка s в PC. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Затем отображаемое последовательное имя порта comName используется для получения объекта операции. Вы можете открыть этот последовательный порт:
System.IO.Ports.SerialPort com = новый System.IO.Ports.SerialPort(comName); com. Open();
Затем данные могут быть записаны на последовательный порт
Передача данных на последовательный порт: com. WriteLine(this.textBox1.Text); Также можно записывать байтовые массивы com. Write(bArray,0,5); Он относится к 5 байтам, начинающимся с 0, которые записывают массив байтов bArray
Данные также могут быть приняты: com. ReadLine() Также возможно читать байты com. ReadByte();
В конце концов, она закрывается: com. Close();
Также преобразите шестнадцатеричную строку в байт байт b = Convert.ToByte("1A",16); Последовательный порт C# отправляет данные Очки за награды: 5 - Время разрешения: 2009-10-19 21:15 Я хочу отправить шестнадцатеричную команду на последовательный порт, командная строка звучит так: "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" Как я могу преобразовать вышеуказанную строку в числовом порядке, чтобы последовательный порт компьютера знал, что отправленная мной строка шестеричной? Дополнение к вопросу: У кого есть такой пример кода, пожалуйста, помогите, я производитель оборудования, не знаком с программным обеспечением, надеюсь, мастер сможет дать подробный код, спасибо! Вопрос: дайшуаньцин — стажёр 1 уровня Лучший ответ Добавьте ссылку: Microsoft.VisualBasic (это код на C#, но на него нужно ссылаться). )
Пройдите SerialPortNames следующим образом, чтобы получить все последовательные порты Microsoft.VisualBasic.Devices.Computer pc = новый Microsoft.VisualBasic.Devices.Computer(); foreach (строка s в PC. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Затем отображаемое последовательное имя порта comName используется для получения объекта операции. Вы можете открыть этот последовательный порт:
System.IO.Ports.SerialPort com = новый System.IO.Ports.SerialPort(comName); com. Open();
Затем данные могут быть записаны на последовательный порт
Передача данных на последовательный порт: com. WriteLine(this.textBox1.Text); Также можно записывать байтовые массивы com. Write(bArray,0,5); Он относится к 5 байтам, начинающимся с 0, которые записывают массив байтов bArray
Данные также могут быть приняты: com. ReadLine() Также возможно читать байты com. ReadByte();
В конце концов, она закрывается: com. Close();
Также преобразите шестнадцатеричную строку в байт байт b = Convert.ToByte("1A",16); |