热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python生成CRC16MODBUS校验码

frombinasciiimport*importcrcmod#生成CRC16-MODBUS校验码defcrc16Add(read):crc16crcmod.mkCrcFun(

from binascii import *
import crcmod#生成CRC16-MODBUS校验码
def crc16Add(read): crc16 = crcmod.mkCrcFun(0x18005, rev=True, initCrc=0xFFFF, xorOut=0x0000)data = read.replace(" ", "") #消除空格readcrcout = hex(crc16(unhexlify(data))).upper()str_list = list(readcrcout)# print(str_list)if len(str_list) == 5:str_list.insert(2, '0') # 位数不足补0,因为一般最少是5个crc_data = "".join(str_list) #用""把数组的每一位结合起来 组成新的字符串# print(crc_data)read = read.strip() + ' ' + crc_data[4:] + ' ' + crc_data[2:4] #把源代码和crc校验码连接起来# print('CRC16校验:', crc_data[4:] + ' ' + crc_data[2:4])print(read)return readif __name__ == '__main__':crc16Add("01 06 00 66 00 C8 00 00")

运行结果如下(经校验正确)
在这里插入图片描述

 


推荐阅读
author-avatar
韩庚plus
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有