Stm32F4 diskA\8,STM32参考资料\1,STM32F4xx固件库\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0
外接晶振25M,假如要将系统时钟设为168Mhz
打开 system_stm32f4xx.c文件
/************************* PLL Parameters *************************************/
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx) || defined (STM32F401xx)
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M 25
#else /* STM32F411xE */
#if defined (USE_HSE_BYPASS)
#define PLL_M 8
#else /* STM32F411xE */
#define PLL_M 16
#endif /* USE_HSE_BYPASS */
#endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F401xx */
把 #define PLL_M 改为 25
#if defined (STM32F40_41xxx)
#define PLL_N 336
/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P 2
#endif /* STM32F40_41xxx */
那么PLL=25Mhz*PLL_N /(PLL_M / PLL_P )=25*336/(25*2)=168Mhz
如果外接晶振8M,假如要将系统时钟设为168Mhz
PLL_M =8, PLL_N = 336;PLL_P= 2
那么PLL=8*336/(8*2)=168Mhz
* Supported STM32F40xxx/41xxx devices
*-----------------------------------------------------------------------------
* System Clock source | PLL (HSE)
*-----------------------------------------------------------------------------
* SYSCLK(Hz) | 168000000
*-----------------------------------------------------------------------------
* HCLK(Hz) | 168000000
*-----------------------------------------------------------------------------
* AHB Prescaler | 1
*-----------------------------------------------------------------------------
* APB1 Prescaler | 4
*-----------------------------------------------------------------------------
* APB2 Prescaler | 2
*-----------------------------------------------------------------------------
* HSE Frequency(Hz) | 25000000
*-----------------------------------------------------------------------------
* PLL_M | 25
*-----------------------------------------------------------------------------
* PLL_N | 336
*-----------------------------------------------------------------------------
* PLL_P | 2
*-----------------------------------------------------------------------------
* PLL_Q | 7
*-----------------------------------------------------------------------------
* PLLI2S_N | NA
*-----------------------------------------------------------------------------
* PLLI2S_R | NA
*-----------------------------------------------------------------------------
* I2S input clock | NA
*-----------------------------------------------------------------------------
* VDD(V) | 3.3
*-----------------------------------------------------------------------------
* Main regulator output voltage | Scale1 mode
*-----------------------------------------------------------------------------
* Flash Latency(WS) | 5
*-----------------------------------------------------------------------------
* Prefetch Buffer | ON
*-----------------------------------------------------------------------------
* Instruction cache | ON
*-----------------------------------------------------------------------------
* Data cache | ON
*-----------------------------------------------------------------------------
* Require 48MHz for USB OTG FS, | Disabled
* SDIO and RNG clock |
*----------------------------------------------------------------------------
还有stm32f4xx.h中的宏定义标识符,约123行,此处要和硬件就是晶振的频率相同
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
本文介绍如何配置STM32F4系列微控制器的系统时钟以达到168MHz的工作频率。通过调整PLL参数(PLL_M、PLL_N、PLL_P),可以使用不同频率的外部晶振实现目标系统时钟。
2799

被折叠的 条评论
为什么被折叠?



