找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1553|回复: 6
打印 上一主题 下一主题
收起左侧

串口协议的校验方式

[复制链接]
跳转到指定楼层
楼主
1黑币


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

试了很多一直不对,

46.png (22.43 KB, 下载次数: 23)

46.png

33.png (50.41 KB, 下载次数: 21)

33.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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

回复

使用道具 举报

5#
ID:592807 发表于 2022-12-26 10:08 | 只看该作者
你说他可不可以自定义校验码
回复

使用道具 举报

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

使用道具 举报

7#
ID:354759 发表于 2023-4-14 14:04 | 只看该作者
一眼cksum
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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