在使用winform带的串口控件进行开发时,要求A端发送一段帧结构给B端,B根据A的结构计算结果后返回一段帧结构,但在发送给另一端的过程中最后一位总为3F
byte[] send_d = new byte[12];//用于存放发送数据16+8+24+32+8
Boolean flag = false;
send_d[0] = 0xAA;//帧头
send_d[1] = 0x55;
send_d[2] = buffer[2];//类型
send_d[3] = buffer[3];//帧号
send_d[4] = buffer[4];
send_d[5] = buffer[5];
//计算结果pA==》32bit
byte[] p_A = new byte[4];
p_A = System.BitConverter.GetBytes(pa);
for (int i = 0; i < 4; i++)
{
send_d[i + 6] = p_A[3 - i];
}
//计算校验位
byte Check_Digit=0X00;
for (int i = 2; i < 10; i++)
{
Check_Digit ^= send_d[i];
}
send_d[10] = Check_Digit;
//通过串口发送
if (serialPort1.IsOpen)
{
serialPort1.Write(send_d, 0, send_d.Length);
}
看到有帖子说是校验位等设置,我全对照着设置了一遍发现还是不对