stm32修改系统时钟
2017-11-14 20:31
288 查看
前言:前面一节我们提到过,要修改系统时钟,就是要修改那些倍频器、分频器的系数
直接把上面的复制到主函数前作为函数的声明加定义。然后在主程序的最开头写
所以这里的系统时钟为:8 / 8 *336 /2 =168Mhz,而168也是系统的最大值。另外注意,M,N,P有取值范围:M(0-》63);N(192-》432);P(取2 4 6 8其中之一)
在这个简单的例子中,如果只是修改系统时钟,依然会使led的闪烁间隔时间发生变化。因为我们在学汇编语言的时候知道,系统时钟的大小觉得了单片机执行一条命令的速度。系统时钟越大,则越快
修改系统时钟的函数
void RCC_HSE_Config(u32 pllm,u32 plln,u32 pllp,u32 pllq) { RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON); if(RCC_WaitForHSEStartUp()==SUCCESS) { RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_PCLK2Config(RCC_HCLK_Div2); RCC_PCLK1Config(RCC_HCLK_Div4); RCC_PLLConfig(RCC_PLLSource_HSE,pllm,plln,pllp,pllq); RCC_PLLCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET); RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); while(RCC_GetSYSCLKSource()!=0x08); } }
直接把上面的复制到主函数前作为函数的声明加定义。然后在主程序的最开头写
void RCC_HSE_Config(8,336,2,7)//8表示树图里的M,336为N,2为P,7不用改就写7
所以这里的系统时钟为:8 / 8 *336 /2 =168Mhz,而168也是系统的最大值。另外注意,M,N,P有取值范围:M(0-》63);N(192-》432);P(取2 4 6 8其中之一)
例子说明
int main() { RCC_HSE_Config(63,192,8,7); LED_Init(); while(1) { GPIO_ResetBits(GPIOF,GPIO_Pin_10); delay(600000); GPIO_SetBits(GPIOF,GPIO_Pin_10); delay(600000); } }
在这个简单的例子中,如果只是修改系统时钟,依然会使led的闪烁间隔时间发生变化。因为我们在学汇编语言的时候知道,系统时钟的大小觉得了单片机执行一条命令的速度。系统时钟越大,则越快
相关文章推荐
- 教你如何修改STM32系统时钟
- STM32在系统时钟为72M下的几个延时函数—V3.5库
- STM32学习笔记2-系统时钟知识及程序配置
- STM32时钟系统学习
- STM32 时钟系统
- 2011-03-10 17:04 STM32 时钟 系统时钟 配置 与 时钟树解析
- 【转】 STM32 入门教程 系统时钟 SysTick
- STM32学习笔记2-系统时钟知识及程序配置
- STM32系统时钟的配置
- STM32的时钟系统RCC详细整理
- STM32之系统时钟
- (六)STM32的时钟系统
- STM32的时钟系统
- STM32学习---时钟系统
- STM32系统时钟配置
- STM32——时钟系统
- STM32___系统时钟
- STM32学习笔记:系统的时钟
- STM32 自行配置系统时钟
- STM32的时钟系统分析