学习
实践
活动
工具
TVP
写文章

python计算CRC16

python计算CRC16等 智能电能表数据通信协议DL/T 645 - 2007;本部分实现了该协议的部分功能。 temper=('00'+temper).upper()[-2:] h=h+temper ##返回减0x33后的数据 return h ''' 计算16进制字符串的CRC16 校验 @Source 2013-5-10 11:00 ''' def CRC16(s): h='0' for i in range(len(s)/2): h=hex(int ) if len(h)<=1: h='00'+h return h.upper()[-2:] ##68AAAAAAAAAAAA681300DF16 ##print CRC16

75110

CRC16 的生成及校验原理「建议收藏」

参考:https://blog.csdn.net/niepangu/article/details/45499383

14220
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CRC16校验与数据解压缩

    使用Qt接口对数据进行CRC16校验与基于zlib算法进行解压缩。 CRC16校验 data:输入数据 len:输入数据长度 standard:实现标准 输出:CRC16校验和 quint16 qChecksum(const char *data,

    44910

    CRC16 编码器的Verilog HDL 实现

    CRC-16 码采用的生成多项式为 G(x) = x16 + x15 + x2 +1 module crc_16( clk,rst,x,crc_reg,crc_...

    1.6K50

    python写的具有CRC16生成、校验

    crccreatearray是直接返回生成crc的数组,calcrc是校验数组是否符合crc16,返回0表示符合,1表示不符合 class crc16: auchCRCHi = [ 0x00, 0xC1 crchi == array[lenarray-2] and crclo== array[lenarray-1] : return 0 else: return 1 test = crc16

    99860

    给文件添加CRC校验

    crc校验 crc校验常用的有CRC16和CRC32,在通信中用的比较多(modbus协议等),这里不详细介绍其原理了。 crc校验不同多项式,计算结果是不一样的。 { unsigned int i; unsigned short j,tmp,CRC16; CRC16=0xffff; for ( i = 0; i < len; i++ ) { CRC16 = *ptr ^ CRC16; for ( j = 0; j < 8; j++ ) { tmp=CRC16 & 0x0001; CRC16 =CRC16 >>1; if (tmp) CRC16=CRC16 ^ 0xa001; } *ptr++; } return = 0) cout<<"check file crc16 fault! please add crc16 later!"

    1.6K20

    【投稿专区】crc校验码的计算

    而一般电气、自动化仪表的crc16校验,多项式码选用16进制A001。 Go 语言实现如下: // 传入数据内容,返回 crc校验码 func Crc16Check(data []byte) []byte { var crc16 uint16 = 0xFFFF for j := 0; j < 8; j++ { if crc16&0x0001 > 0 { crc16 = (crc16 >> 1) ^ 0xA001 } else { crc16 >>= 1 packet[0] = byte(crc16 >> 8) return packet }

    2.1K80

    Hexo博客进阶教程(一)| 优化文章永久链接为数字编号

    month/:day/:title/ #permalink_defaults: permalink: posts/:abbrlink/ abbrlink: alg: crc32 #support crc16 default) and hex 下面解释说明一下: 首先指定Hexo文章永久链接的格式,接下来两个是abbrlink插件的设置: alg -- Algorithm (currently support crc16 and crc32, which crc16 is default) rep -- Represent (the generated link could be presented in hex or dec value) 这两个设置的示例如下: crc16 & hex https://post.zz173.com/posts/66c8.html crc16 & dec https://post.zz173

    77820

    单片机模块化程序: CRC校验

    前言   这一节说明一下数据传输中常用的CRC校验   所谓CRC校验,说白了就是对数据做下计算,然后把计算结果放到最后面   平时用的最多的算是CRC16 直接上菜 计算CRC /** * @brief calculate CRC * @param *modbusdata: Source data address * @param length: data length * @param * @retval CRC16 * @param *modbusdata: Read data address * @param length: Read data length * @param * @retval 1:CRC16 说明:    1.最后两位 F7 和 BE就是经过CRC16计算之后的数据;高位在前,低位在后   2.整个数据发给另一个设备以后,另一个设备用同样的方式计算 01 00 55 aa 的CRC16值    扩展   大部分设备的CRC16计算方式,这个地方是 0xffff, 但是也有0的情况 ?

    56120

    modbus-RTU-crc16——c语言

    参考:https://www.cnblogs.com/skullboyer/p/8342167.html 一、CRC16校验码的使用   现选择最常用的CRC-16校验,说明它的使用方法。    二、CRC16校验码计算方法   常用查表法和计算法。 ------------------------------------------------- unsigned int CRC16; #define SEED 0xFFFF //initialization for CRC16 #define GP 0xA001 //generating polynomial //for standard CRC16 //(remainder of division ) //to start a new CRC, set CRC16 = SEED //then for each byte call Calc_CRC(byte, &CRC16); //CRC16 will

    81910

    Modbus 通讯协议 (RTU传输模式)「建议收藏」

    Addr Fun Data start reg hi Data start reg lo Data #of regs hi Data #of regs lo CRC16 hi CRC16 lo 06H Addr Fun DO start reg hi DO start reg lo DO #of regs hi DO #of regs lo CRC16 hi CRC16 lo 11H 01H 00H Addr Fun Byte count Data CRC16 hi CRC16 lo 11H 01H 01H 2AH XXH XXH 数据 0 0 0 0 0 0 DO2 DO1 MSB Addr Fun Byte count Data1 hi Data1 Lo Data 2 hi Data2 lo Data3 hi Data3 lo CRC16 hi CRC16 lo 11H 03H Addr Fun CRC16 hi CRC16 lo 11H 11H XXH XXH 图示 2-21报告从机标识—-查询 响应 图2 – 22所示正常响应格式,数据内容对应每台控制器的类型。

    36920

    用ESP8266+android,制作自己的WIFI小车(ESP8266篇)

    gpio.write(6,0)--you qian gpio.write(5,0)--you hou end end) --计算CRC function CRC16 我规定的 前进  0xAA,0x55,0x01,((传过来的数0-100,根据手机倾斜角度)速度PWM),CRC16低位,CRC16高位 后退  0xAA,0x55,0x02,((传过来的数0-100, 根据手机倾斜角度)速度PWM),CRC16低位,CRC16高位 右转  0xAA,0x55,0x03,((传过来的数0-100,根据手机倾斜角度)速度PWM),CRC16低位,CRC16高位 左转  0xAA ,0x55,0x04,((传过来的数0-100根据手机倾斜角度)速度PWM),CRC16低位,CRC16高位 停止  0xAA,0x55,0x05,((0)速度PWM),CRC16低位,CRC16高位 下面是自己写的CRC16校验,,对于不是提供了CRC16校验了,为什么还要自己写,...看下面哈 --计算CRC function CRC16(modbusdata,length) local

    4.5K80

    为什么 Redis Cluster 是16384个槽位?

    CRC16的算法原理: 根据CRC16的标准选择初值CRCIn的值 将数据的第一个字节与CRCIn高8位异或 判断最高位,若该位为 0 左移一位,若为 1 左移一位再与多项式Hex码异或 重复3直至8位全部移位计算结束 CRC16 算法最大值 CRC16 算法,产生的hash值有 16 bit 位,可以产生 65536(2^16)个值 ,也就是说值分布在 0 ~ 65535 之间 这时候,疑问来了,槽位总数为什么是 16384

    1.3K21

    2.5-Air302(NB-IOT)-基础外设-串口(485,422),CRC校验

    local datatable={}; for i=1,RevLen do datatable[i] = data:byte(i); end log.info("CRC16 =", CRC16(datatable,RevLen)); --计算CRC function CRC16(modbusdata,length) local i=0;local j=0;local function CRC16Flage(modbusdata,length) local Receive_CRC = 0;local calculation = 1; Receive_CRC = CRC16

    35742

    hexo修剪地址栏

    permalink: p/:abbrlink/ # 此处可以自己设置,也可以直接使用 :/abbrlink ,建议前面带目录,不然太乱 abbrlink: alg: crc32 #算法: crc16 (default) and crc32 rep: hex #进制: dec(default) and hex 生成的链接将会是这样的(官方样例): crc16 & hex https://post.zz173 .com/p/66c8.html crc16 & dec https://post.zz173.com/p/65535.html crc32 & hex https://post.zz173.com/

    13920

    STM32使用大彩串口屏程序框架使用总结

    CheckCRC16(buffer+1,cmd_size-5))//CRC校验 38 return 0; 39 40 cmd_size -= 2;//去掉CRC16 TX_16((P1)>>16);TX_16((P1)&0xFFFF) //发送32位整数 这里是参考手册发送的指令: 1#if(CRC16_ENABLE) 2 3static uint16 _crc16 ); 39 SendChar(c); 40} 41 42void BEGIN_CMD() 43{ 44 TX_8(0XEE); 45 _crc16 = 0XFFFF;//开始计算CRC16 46} 47 48void END_CMD() 49{ 50 uint16 crc16 = _crc16; 51 TX_16(crc16);//发送CRC16 52 TX_32(0XFFFCFFFF ); 53} 54 55#else//NO CRC16 56 57#define SEND_DATA(P) SendChar(P) 58#define BEGIN_CMD() TX_8(0XEE) 59

    1.6K40

    扫码关注腾讯云开发者

    领取腾讯云代金券