CRC-这是个bug吗?

2019-03-23 19:39发布

使用STM32F103ZET6,代码如下
int main(void)
{
    int getdr;
    RCC_AHBPeriphClockCmd( RCC_AHBPeriph_CRC , ENABLE);
    CRC->CR = 1;
    CRC->DR = 0x0;
    getdr =  CRC->DR;
    while (1){}
}
包括打开CRC时钟,reset crc,写入0,读取计算结果。

debug下单步执行,结果正确,一次执行到while循环,结果错误,读出0xFFFFFFFF。以下皆为一次执行到while的结果:
写入数据为0,结果错误,写入其他数据,有时正常,例如写入0x12345678,有时不正常,例如写入0xFFFFFFFF或写入0x3时,结果为0xFFFFFFFF
去掉CRC->CR = 1,结果全部正常。
这些是否说明CRC的reset时序和写入数据的时序在部分情况下会产生冲突,使得数据的写入不能正确进行。
这算是stm32中crc模块硬件设计上的bug吗? 此帖出自小平头技术问答
0条回答

一周热门 更多>