STM32F4的程序问题

最近做论文用到STM32F4,C都忘光了,下面的两句不理解,问题在语句后面,麻烦知道的朋友帮忙指点,谢谢。//切换系统时钟为对应晶振并等待稳定RCC->CFGR&=(~(... 最近做论文用到STM32F4,C都忘光了,下面的两句不理解,问题在语句后面,麻烦知道的朋友帮忙指点,谢谢。
//切换系统时钟为对应晶振并等待稳定
RCC->CFGR &= (~(RCC_CFGR_SW));
RCC->CFGR |= OSC_SW;
while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != OSC_SWS);----SWS是反应SW状态,在这里是不是应该是!=OSC_SW,写为OSC_SWS有些不理解。

//配置PLL
RCC->CR &= (~(RCC_CR_PLLON)); //先关闭PLL
RCC->CR &= (~(RCC_CR_PLLI2SON)); //关闭PLLI2S
RCC->PLLCFGR = PLLM | (PLLN << 6) | (((PLLP >> 1) -1) << 16) | (PLLQ << 24) | (OSC_SRC);-------PLLP初始赋值为0,((PLLP >> 1) -1) << 16表示什么意思?我的理解是将0右移1位,再减掉1,然后再左移16位,可问题是减掉1是变为多少了?还是说理解不对?
展开
 我来答
百度网友2117fb9
2014-06-24 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:74.6万
展开全部
OSC_SWS这里要看你所用程序的定义,作用就是‘切换系统时钟为对应晶振并等待稳定’

具体请看寄存器RCC_CFGR;
PLLP初值不是0,请再查找PLLP的定义,一般是用宏。
具体请看寄存器RCC_PLLCFGR;
IC资料都不看就上来发问,估计没人能帮你。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式