RCC->CR |= (uint32_t)0x00000001什么意思

RCC->CR |= (uint32_t)0x00000001什么意思,第1张

您好,这样的:

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输出已经稳定。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11789681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存