CubeMx的时钟配置SYSCLK溢出

2019-07-14 14:29发布

前段时间有幸在论坛领到一块NUCLEO-F413ZH,之前也没有用过CubeMx,所以想着去试一下;NUCLEO-F413板载是没有HSE的,所以只能把PLLCLK的时钟源选为HSI;
同时,我在下载了F4的官方软件工程 en.STM32cubef4 ,
然后,发现里面的时钟配置是这样的:

/**
  * @brief  System Clock Configuration
  *         The system Clock is configured as follow :
  *            System Clock source            = PLL (HSI)
  *            SYSCLK(Hz)                     = 100000000
  *            HCLK(Hz)                       = 100000000
  *            AHB Prescaler                  = 1
  *            APB1 Prescaler                 = 2
  *            APB2 Prescaler                 = 1
  *            HSE Frequency(Hz)              = 8000000
  *            PLL_M                          = 8
  *            PLL_N                          = 400
  *            PLL_P                          = 4
  *            PLL_Q                          = 7
  *            VDD(V)                         = 3.3
  *            Main regulator output voltage  = Scale2 mode
  *            Flash Latency(WS)              = 3
  * @param  None
  * @retval None
  */

这是static void SystemClock_Config(void) 的功能说明

然后,我按照这个参数在CubeMx上勾选,发现 SYSCLK就已经溢出了,超过了100M;
然后,我仿真去查看  RCC->PLLCFGR寄存器的值,也是符合 上面的参数的;
还在研究中,希望有经验的能解答下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
sdfsgsd
2019-07-15 10:52
充电搜索 发表于 2019-1-18 19:13
内部HSI是16M,F4Cube库内的示例代码应该是用的外部8M HSE,这明显不一样,再者,虽然NUCLEO板上MCU默认没有焊接外部晶振,但是可以旁路ST-Link模块的8M晶振,使用By-Pass的HSE就可以了。

你说的有道理,是我先看了注释先入为主了,没有认真看代码

/**
  * @brief  System Clock Configuration
  *         The system Clock is configured as follow :
  *            System Clock source            = PLL (HSI)
  *            SYSCLK(Hz)                     = 100000000
  *            HCLK(Hz)                       = 100000000
  *            AHB Prescaler                  = 1
  *            APB1 Prescaler                 = 2
  *            APB2 Prescaler                 = 1
  *            HSE Frequency(Hz)              = 8000000
  *            PLL_M                          = 8
  *            PLL_N                          = 400
  *            PLL_P                          = 4
  *            PLL_Q                          = 7
  *            VDD(V)                         = 3.3
  *            Main regulator output voltage  = Scale2 mode
  *            Flash Latency(WS)              = 3
  * @param  None
  * @retval None


  /* Enable HSI Oscillator and activate PLL with HSI as source */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLM = 8;
  RCC_OscInitStruct.PLL.PLLN = 400;
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
  RCC_OscInitStruct.PLL.PLLQ = 7;
  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)


确实是我一根筋,

一周热门 更多>