主要作用:清除發送字符串轉字節中的空格和16進制前綴0x,
字節轉換按兩位字符轉換為一個字節,多余一位按一位字符轉換一個字節
//清除空格和16進制前綴發送
String sendstr;// = new String [textBox1.Text.Length]
sendstr = textBox1.Text;
//這里采用substring較麻煩,不能使用split,因為sendstr為隱形string[],應該還可以用remove(未嘗試過)
//清除發送字符串轉字節中的空格和16進制前綴0x
sendstr = sendstr.Replace(" ", "");
sendstr = sendstr.Replace("0x", "");
byte[] Data = new byte[1];
try
{
if (serialPort1.IsOpen)
{
if (textBox1.Text != "")
{
//字節轉換按兩位字符轉換為一個字節,多余一位按一位字符轉換一個字節
for (int i = 0; i < (sendstr.Length - sendstr.Length % 2) / 2; i++)
{
Data[0] = Convert.ToByte(sendstr.Substring(i * 2, 2), 16);
serialPort1.Write(Data, 0, 1);
}
if (sendstr.Length % 2 != 0)
{
Data[0] = Convert.ToByte(sendstr.Substring(sendstr.Length - 1, 1), 16);
serialPort1.Write(Data, 0, 1);
}
}
else
{
MessageBox.Show("發送區未輸入數據", "數據輸入提示");
}
//serialPort1.Write(recivebyte, 0, recivebyte.Length);
}
else
{
MessageBox.Show("串口未打開", "串口未打開提示");
}
}
catch
{
MessageBox.Show("發送出錯", "錯誤提示");
serialPort1.Close();
}
