STM32f407系统定时器时钟配置、计算
来源:互联网 发布:selfiecity软件下载 编辑:程序博客网 时间:2024/05/10 19:56
外部晶振的选择
确定自己单片机的外部晶振
系统默认配置为25M,即打开官方库文件参数HSE Frequency(Hz) 一般为25000000
HSE Frequency(Hz) | 25000000---------- #if !defined (HSE_VALUE) #define HSE_VALUE ((uint32_t)25000000) /*!<Value of the External oscillator in Hz */#endif /* HSE_VALUE */
我自己的单片机外部晶振为8M,将参数改为8000000
系统时钟确定
1.改完之后参照stm32f4时钟树
2.首先明确自己的系统总时钟
找到自己程序PLL Parameters部分(工程system_stm32f4xx.c)
/************************* PLL Parameters***************************//* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N *///锁相环压腔振荡器时钟//PLL_VCO =(HSE_VALUE/PLL_M)* PLL_N=8/ 8* 336 = 336MHz#define PLL_M 8#define PLL_N 336/* SYSCLK = PLL_VCO / PLL_P */// 系统时钟SYSCLK = PLL_VCO / PLL_P=336 / 2 = 168MHz #define PLL_P 2/* USB OTG FS, SDIO and RNG Clock = PLL_VCO / PLLQ *///USB,SD卡时钟= PLL_VCO / PLLQ=336 / 7 = 48MHz#define PLL_Q 7/*******************************************************************/
3.计算出自己系统时钟为168M
a.这里需要计算各个定时器分配所得的计数时钟频率
b.找到APB1,APB2配置部分
c.程序位置
/* Select regulator voltage output Scale 1 mode, System frequency up to 168 MHz */ RCC->APB1ENR |= RCC_APB1ENR_PWREN; PWR->CR |= PWR_CR_VOS; /* HCLK = SYSCLK / 1*/ RCC->CFGR |= RCC_CFGR_HPRE_DIV1; /* PCLK2 = HCLK / 2*/ RCC->CFGR |= RCC_CFGR_PPRE2_DIV2; /* PCLK1 = HCLK / 4*/ RCC->CFGR |= RCC_CFGR_PPRE1_DIV4; /* Configure the main PLL */ RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) | (RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);
d.位置计算
15:13位为 010 —–>AHB2 不分频
12:10位为 101 —–>AHB1 4分频
e. 原则“非1即2”
明确APB1得到时钟84M,APB2计数时钟频率168M
系统默认情况:
*默认配置:外部时钟启动失败,系统会自动使用内部时钟*HCLK = SYSCLK / 1 = 168MHz ,AHB×总线时钟*PCLK2 = HCLK / 2 = 84MHz*PCLK1 = HCLK / 4 = 42MHz
*==============================================================
定时周期、频率的计算
arr:自动重装载值psc:时钟预分频树定时器溢出时间计算方法:Tout=((arr+1)*(psc+1))/Ft us.Ft=定时器工作频率,单位:Mhz
实例验证演示
阅读全文
1 0
- STM32f407系统定时器时钟配置、计算
- STM32F407系统时钟配置
- STM32F407的定时器时钟频率
- STM32F407时钟配置
- STM32F407时钟配置
- STM32F407系统时钟配置是否添加FPU功能
- stm32f407定时器时钟频率的问题
- stm32f407部分外设驱动,can总线,定时器,gpio,串口,系统时钟等
- stm32f407开发板的时钟配置问题
- stm32f407开发板的时钟配置问题
- 分享关于stm32f407定时器时钟频率的问题
- STM32定时器时钟配置
- STM32F407的时钟配置(system_config.c浅见)
- uboot---系统时钟和定时器
- 系统时钟和SysTick定时器
- JZ2440系统时钟和定时器
- STM32F407学习之时钟
- STM32F407时钟树
- android studio 单元测试
- 《CSS Mastery》Chapter 2
- R语言的优劣势
- 1054. 求平均值 (20)
- python生成器迭代器
- STM32f407系统定时器时钟配置、计算
- Javascript实现拍照上传压缩,旋转
- Hadoop的hdfs常用的文件命令
- 为什么在晶振上并电阻?
- 高级Android到底有什么要求!!!
- LeetCode 0100
- Stack(栈)v1.0
- js取float型小数点后x位数的方法
- Require.js用法