python通过库文件计算CRC xmodem和modbus,代码如下:
import crcmod
# 创建CRC16实例,参数为CRC多项式
# xmodem多项式是0x1021
crc16xmodem_func = crcmod.predefined.Crc('xmodem')
# modbus多项式是 0x8005
crc16modbus_func = crcmod.predefined.Crc('modbus')
# 十六进制数据
hex_data = '68656c6c6f'
data = bytes.fromhex(hex_data)
# ASCII码数据
ascii_data = 'hello'
# 将ASCII码字符串转换为字节串
data2 = ascii_data.encode('ascii')
# 计算CRC16 XModem
crc_xmodem_value = crc16xmodem_func.new(data2).crcValue
print("CRC16 XModem 值为:", hex(crc_xmodem_value))
# 计算 CRC16-Modbus
crc_modbus_value = crc16modbus_func.new(data).crcValue
print("CRC16-Modbus 值为:", hex(crc_modbus_value))
运行结果: