使用winform串口发送帧最后一位出现3F

在使用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);
            
        }

img

看到有帖子说是校验位等设置,我全对照着设置了一遍发现还是不对

//计算校验位
byte Check_Digit=0X00;
for (int i = 2; i < 10; i++)
{
Check_Digit ^= send_d[i];
}
send_d[10] = Check_Digit;
是校验位啊。代码里面不是标注了。。3F对应send_d第11位。

在你提供的代码中哪一部分指的是最后一位呢? send_d[10] ? 代码缺少 buffer数组 和 pa 的值。
请提供能重现你问题的代码示例。这样将帮助我们进行测试。