STM32G030 CRC_DR 32位写入CRC计算结果不符问题求助
STM32G030 CRC模块字节序问题及DMA优化需求
使用STM32G030的CRC_DR寄存器做32位写入时出现异常:
- 输入
0x12345678、采用16位多项式0x1021,实际得到结果0x0000B42C,与预期的0xD0FA不符; - 写入字节序反转后的
0x78563412时,结果符合预期; - 尝试过CRC_CR寄存器中所有REV*位的组合,均无法解决问题,推测是字节序导致;
- 希望通过DMA进行字访问来提升CRC计算效率。
结果正确的伪代码
RCC.CRCEN=1; CRC_CR.POLYSIZE=0b01; CRC_POL=0x1021; CRC_INIT=0; CRC_CR.RESET=1; CRC_DR=0x78563412;
结果不符的伪代码
RCC.CRCEN=1; CRC_CR.POLYSIZE=0b01; CRC_POL=0x1021; CRC_INIT=0; CRC_CR.RESET=1; CRC_DR=0x12345678; CRC_DR contains 0x0000B42C but my own CRC routine says 0xD0FA.
内容的提问来源于stack exchange,提问作者RRIDDICC
相关产品推荐
相关产品推荐

