CRC16-modbus计算(C实现)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <string.h>
unsigned short utils_crc16_modbus( unsigned char *buff,int len)
{
    unsigned short tmp = 0xffff;
    unsigned short ret1 = 0;
   
    for(int n = 0; n < len; n++){
        tmp = buff[n] ^ tmp;
        for(int i = 0;i < 8;i++){
            if(tmp & 0x01){
                tmp = tmp >> 1;
                tmp = tmp ^ 0xa001;
            }  
            else{
                tmp = tmp >> 1;
            }  
        }  
    }  
    return tmp;
}

  

posted @   轻轻的吻  阅读(220)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示