CubeMX5.2.1与STM32Cube FW_F1 V1.24.1生成代码,时钟配置进入Error_Handler()

1、使用STM32F446

2、使用CubeMX5.2.1与STM32Cube FW_F1 V1.24.1库生成。

3、外部8Mh晶振,主频配置为180Mhz,RCC_OscInitStruct.PLL.PLLN = 180;

现象:

1.MCU执行到if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK),进入Error_Handler()。

2.跟踪发现在执行到Src\stm32f4xx_hal_rcc_ex.c文件中的

pllvco = (uint32_t) ((((uint64_t) HSE_VALUE * ((uint64_t) (((uint64_t)RCC->PLLCFGR & (uint64_t)RCC_PLLCFGR_PLLN) >> (uint64_t)RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm);

进入Error_Handler()。最终导致MCU启动失败。

降低主频,RCC_OscInitStruct.PLL.PLLN = 130;改为130后不再进去Error_Handler(),程序运行正常了。

为什么配置曾1130以上就不正常了???

请大神们帮忙分析下原因,感激!!!


已邀请:

要回复问题请先登录注册