求助一个关于STM32F1xx固件库函数的问题
时间:10-02
整理:3721RD
点击:
在system_stm32f10x.c的558行代码
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
这里为什么使用了两次强制类型转换?而且在RCC_CFGR_SW的宏定义里
#define RCC_CFGR_SW ((uint32_t)0x00000003)
已经将RCC_CFGR_SW配置成uint32_t格式了呀?
求讲解,谢谢了!
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
这里为什么使用了两次强制类型转换?而且在RCC_CFGR_SW的宏定义里
#define RCC_CFGR_SW ((uint32_t)0x00000003)
已经将RCC_CFGR_SW配置成uint32_t格式了呀?
求讲解,谢谢了!
估计是为了严谨吧。
~运算后进行转换一次。再对所有的运算完成后再转换一次。
因为里头含有运算,多次加这个东西的原因在于防止运算后出现一些极端数据而造成不可预料的后果吧。