f334的SystemInit函数位与写入CFGR寄存器的意义?
我用STM32CubeMX创建了一个stm32f334c8t6芯片的工程,在system_stm32f3xx.c文件下的void SystemInit()函数中有/* Reset the RCC clock configuration to the default reset state ------------*/
/* Set HSION bit */
RCC->CR |= 0x00000001U;
/* Reset CFGR register */
RCC->CFGR &= 0xF87FC00CU;
我想问,为什么要对CFGR寄存器进行&=操作,STM32F334C8T6参考手册(文档编号RM0364)中118页写明了Reset value: 0x0000 0000,那按位与完肯定不还是0吗?做这个操作有什么用?而且位与的值的二进制为1111,1000,0111,1111,1100,0000,0000,1100,我发现23位和0位与,22位和1位与,而他们两个都是标了res的保留位,为啥要区别对待?
为了保证逻辑正确,所以设置了当前软件需要的时钟状态。至于保留位,可能只有库设计人员知道,但是对于用户来说,没有特殊说明就不用去配置它:)
页:
[1]