, поэтому я пытаюсь отправить несколько байтов с шестнадцатеричными значениями для настройки моего микроконтроллера на другой стороне последовательного порта. Дело в том, что я не совсем уверен, как правильно это сделать и в каком формате их отправлять. Например, мне нужно отправить два байта, и их шестнадцатеричные значения равны 57
и B0
. Когда я пытаюсь отправить его как массив символов и читаю его обратно, я всегда получаю значения ASCII Hex для таких символов, как 53
, а затем 55
для значения 57
. Поэтому я хотел отформатировать шестнадцатеричное значение как байт и отправить их обоих одновременно из байтового массива, но я не получаю ничего при чтении ответа. После форматирования в байтах MessageBox показывает его десятичное значение, и я не знаю, должно ли оно быть таким. Я предоставляю свой код ниже.
Info_Byte_Dec += Protocol_Set + Protocol_Unit + Protocol_Write + Protocol_Settings; //stores decimal value
Data_Byte_Dec = Mode * Protocol_Mode_Offset + ODR * Protocol_ODR_Offset + Scale; //stores decimal value
Info_Byte_Hex = Info_Byte_Dec.ToString("X"); //convert to hex value
Data_Byte_Hex = Data_Byte_Dec.ToString("X"); //convert to hex value
string Merged = $"{Info_Byte_Hex} {Data_Byte_Hex}";
MessageBox.Show("Merged1: " + Merged);
byte[] Mergedbytes = Merged.Split(' ').Select(s => Convert.ToByte(s, 16)).ToArray();
MessageBox.Show("Merged2: " + Mergedbytes[0] + Mergedbytes[1]);
port.Write(Mergedbytes, 0, 2);
Я не уверен, должен ли я просто отправлять десятичное значение 87
, или мне нужно отформатировать его в 57
шестнадцатеричное значение или даже в 0x57
.