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是变为多少了?还是说理解不对? 展开
//切换系统时钟为对应晶振并等待稳定
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是变为多少了?还是说理解不对? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询