import binascii
|
|
# FLASH前16字节
|
data = bytes.fromhex('55AA3C1002000000AB0D416900000000')
|
|
print(f"Data: {data.hex().upper()}")
|
print(f"Length: {len(data)} bytes")
|
print()
|
|
# 测试不同的CRC32配置
|
print("CRC32 Results:")
|
print("=" * 60)
|
|
# 1. 初始值 0
|
crc1 = binascii.crc32(data, 0) & 0xFFFFFFFF
|
print(f"1. Init=0x00000000, No XOR: 0x{crc1:08X}")
|
|
# 2. 初始值 0xFFFFFFFF
|
crc2 = binascii.crc32(data, 0xFFFFFFFF) & 0xFFFFFFFF
|
print(f"2. Init=0xFFFFFFFF, No XOR: 0x{crc2:08X}")
|
|
# 3. 初始值 0,最终XOR 0xFFFFFFFF
|
crc3 = (~binascii.crc32(data, 0)) & 0xFFFFFFFF
|
print(f"3. Init=0x00000000, XOR=0xFFFFFFFF: 0x{crc3:08X}")
|
|
# 4. 初始值 0xFFFFFFFF,最终XOR 0xFFFFFFFF (标准CRC32)
|
crc4 = (~binascii.crc32(data, 0xFFFFFFFF)) & 0xFFFFFFFF
|
print(f"4. Init=0xFFFFFFFF, XOR=0xFFFFFFFF: 0x{crc4:08X}")
|
|
print("=" * 60)
|
print()
|
print("STM32配置应该是:")
|
print(" - Polynomial: 0x04C11DB7 (标准CRC-32)")
|
print(" - Init Value: 需要确认")
|
print(" - Input Data Format: Bytes")
|
print(" - Input Data Inversion: None")
|
print(" - Output Data Inversion: Disable")
|