yincheng.zhong
2 天以前 567085ead3f6adaabd884f16ab4b17c62e8f0403
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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")