找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3645|回复: 6
收起左侧

串口协议的校验方式

[复制链接]
ID:465279 发表于 2022-12-25 20:03 | 显示全部楼层 |阅读模式
1黑币


哪位大神可以指点一下这是用的什么方法计算的校验码呢?

试了很多一直不对,

46.png
33.png
回复

使用道具 举报

ID:883242 发表于 2022-12-25 21:56 | 显示全部楼层
楼主可以指点一下哪些是数据,而哪些又是校验码呢?
回复

使用道具 举报

ID:1056573 发表于 2022-12-26 02:58 | 显示全部楼层
参考CRC校验:
/// <summary>
        /// CRC校验
        /// </summary>
        /// <param name="data">校验数据</param>
        /// <returns>高低8位</returns>
        public static byte[] CRCCalc(byte[] bytedata)
        {
            byte[] res = new byte[2];
            byte[] crcbuf = bytedata.ToArray();
            //计算并填写CRC校验码
            int crc = 0xffff;
            int len = crcbuf.Length;
            for (int n = 0; n < len; n++)
            {
                byte i;
                crc = crc ^ crcbuf[n];
                for (i = 0; i < 8; i++)
                {
                    int TT;
                    TT = crc & 1;
                    crc = crc >> 1;
                    crc = crc & 0x7fff;
                    if (TT == 1)
                    {
                        crc = crc ^ 0xa001;
                    }
                    crc = crc & 0xffff;
                }

            }
            res[1] = (byte)((crc >> 8) & 0xff);
            res[0] = (byte)((crc & 0xff));
            return res;

        }

回复

使用道具 举报

ID:155507 发表于 2022-12-26 08:15 | 显示全部楼层
就是 全部加起来,取最后的8位。
0x4B+0x56+0x30+0x34+0x30+0x03 = 0x138  <---- 取最后8位   0x38

回复

使用道具 举报

ID:592807 发表于 2022-12-26 10:08 | 显示全部楼层
你说他可不可以自定义校验码
回复

使用道具 举报

ID:401564 发表于 2022-12-26 22:54 | 显示全部楼层
这种问题不是第一次有人问了
如果刚好有人用过个这校验方法,那他可能就会知道
你说要是没用过..........你随便找个CRC校验的计算方法看一下,你觉得那是一般人能反推出来的?
回复

使用道具 举报

ID:354759 发表于 2023-4-14 14:04 | 显示全部楼层
一眼cksum
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表