110,538
社区成员
发帖
与我相关
我的任务
分享
private void TestCom_DataSend(string cmd) //发送串口指令
{
if (ComDevice.IsOpen == true)
{
byte[] SendBytes = null;
string SendData = cmd;//指令
//16进制发送
try
{
//剔除所有空格
SendData = SendData.Replace(" ", "");
if (SendData.Length % 2 == 1)
{//奇数个字符
SendData = SendData.Remove(SendData.Length - 1, 1);//去除末位字符
}
List<string> SendDataList = new List<string>();
for (int i = 0; i < SendData.Length; i = i + 2)
{
SendDataList.Add(SendData.Substring(i, 2));
}
SendBytes = new byte[SendDataList.Count];
for (int j = 0; j < SendBytes.Length; j++)
{
SendBytes[j] = (byte)(Convert.ToInt32(SendDataList[j], 16));
}
}
catch
{
MessageBox.Show("请输入正确的16进制数据!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
ComDevice.Write(SendBytes, 0, SendBytes.Length);//发送数据
}
else
{
MessageBox.Show("串口未打开,请打开串口后重试", "错误");
Time_Read.Stop();
}
}