通訊里發送的都是byte,是不存在十六進制數據的,十六進制的全稱叫十六進制字符串,也就是說比如F0,轉換后就是一個byte字節,值為十進制240,只有當把收到的240轉成十六進制字符串時才有F0
只需要用下面方法調用,將得到的byte數組發送出去就行
public
static
byte
[] HexStringToByteArray(
string
s)
{
s = s.Replace(
" "
,
""
);
byte
[] buffer =
new
byte
[s.Length / 2];
for
(
int
i = 0; i < s.Length; i += 2)
buffer[i / 2] = (
byte
)Convert.ToByte(s.Substring(i, 2), 16);
return
buffer;
}
示例來說就是
string
datapacket =
"f02e00010200ff"
;
byte
[] array=HexStringToByteArray(datapacket);
serialPort1.Write(array, 0, array.Length);