qq_43787646 2021-11-22 19:23 采纳率: 0%
浏览 70

使用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

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

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2021-11-22 21:52
    关注

    //计算校验位
    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位。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月22日

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误