RCC->CR |= (uint32_t)0x00000001
就是RCC->CR=RCC->CR|(uint32_t)0x00000001
|是按位或,最后结果是把RCC->CR二进制最后位置1。
rcc是一个结构体structs指针,他指向cr这个成员变量,至于具体是什么,就要看程序上面怎么定义的了。
你这句我还真没见过,我只见过类似RCC->CR=1>>17这样的。RCC->CR:RCC模块的CR寄存器。
1>>17:第17位置1。
temp=RCC->CFGR>>2这个的意思是读取RCC->CFGR寄存器的值,然后将其右移2位后再保存在temp变量中。
temp&=0x03
这个的意思是除了最低两位保留之外,其他位清除。
这两个位(实际就是是RCC->CFGR寄存器的3:2位),名字是SWS[1:0],在参考手册上的解释是:
SWS[1:0]:系统时钟切换状态 (System clock switch status) 由硬件置’1’ 或清’0’ 来指示哪一个时钟源被作为系统时钟。
00:HSI作为系统时钟;
01:HSE作为系统时钟;
10:PLL 输出作为系统时钟;
11:不可用。
就是说当判断结果为2时,表示PLL输出已经稳定。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)