python crc (6.1.1) 和 stm32 硬件 CRC 单元的常见设置?

问题描述 投票:0回答:1

我正在将数据从 python 代码发送到 stm32g0xx MCU。 我使用 stm32 硬件 CRC 计算单元和 https://pypi.org/project/crc/ 作为另一端。 不幸的是我无法理解双方的共同设置。

MCU端默认配置方式:

            hcrc.Init.DefaultPolynomialUse = DEFAULT_POLYNOMIAL_ENABLE;
            hcrc.Init.DefaultInitValueUse = DEFAULT_INIT_VALUE_ENABLE;
            hcrc.Init.CRCLength = CRC_POLYLENGTH_32B;
            hcrc.Init.InputDataInversionMode = CRC_INPUTDATA_INVERSION_NONE;
            hcrc.Init.OutputDataInversionMode = CRC_OUTPUTDATA_INVERSION_DISABLE;
            hcrc.InputDataFormat = CRC_INPUTDATA_FORMAT_BYTES;

在Python方面,我正在尝试使用相同的多项式0x04C11DB7(CRC32、BZIP2和POSIX)进行每个设置,但尚未成功。

您能给我推荐一个更好的方法,而不是尝试所有可能的组合吗?

谢谢

python stm32 crc32
1个回答
0
投票

Python代码兼容STM32默认的神奇公式是:

from crc import Calculator, Configuration

config = Configuration(
    width=32,
    polynomial=0x04C11DB7,
    init_value=0xffffffff,
    final_xor_value=0,
    reverse_input=False,
    reverse_output=False,
)

感谢@Ilya证实了我当时已有的想法。

© www.soinside.com 2019 - 2024. All rights reserved.