初级会员

- 积分
- 50
- 金钱
- 50
- 注册时间
- 2015-1-5
- 在线时间
- 16 小时
|
10金钱
本帖最后由 黑暗主宰 于 2023-2-19 11:52 编辑
在“第十六章 主频和时钟配置实验”章节中
按照例程设置PLL_ARM主时钟,例程中采用的是,可以实现800M时钟配置
CCM_ANALOG->PLL_ARM = (1 << 13) | ((66 << 0) & 0X7F);
但是直接等于可能会影响其他bit位
我就把其分开写
CCM_ANALOG->PLL_ARM &= ~(1<<13);
CCM_ANALOG->PLL_ARM &= ~(0x7F<<0);
CCM_ANALOG->PLL_ARM |= (((66 << 0) & 0X7F));
CCM_ANALOG->PLL_ARM |= (1<<13);
这样反而实现不了时钟配置,这是为什么?
另外,在继续配置其他pll的过程中,发现在配置pll3(USB1, PFD-480)后,
方式1
CCM_ANALOG->PLL_ARM = (1 << 13) | ((66 << 0) & 0X7F);
方式2
CCM_ANALOG->PLL_ARM |= (((66 << 0) & 0X7F));
CCM_ANALOG->PLL_ARM |= (1<<13);
都可以实现800M时钟配置
这是为什么?
|
|