|
本帖最后由 zministaryfw 于 2015-2-14 08:53 编辑 RT,如下是stm32系统时钟的配置,若有不足之处,望各位大大指正完善,谢谢! 1、如果想要使用系统默认时钟72MHz,则直接调用库函数 SystemInit(); 系统默认的时钟配置 如下: PLL时钟72MHz SystemFrequency = SYSCLK_FREQ_72MHz; 系统时钟72MHz SystemFrequency_SysClk =SYSCLK_FREQ_72MHz; AHB时钟72MHz SystemFrequency_AHBClk = SYSCLK_FREQ_72MHz; APB1时钟36MHz SystemFrequency_APB1Clk = (SYSCLK_FREQ_72MHz/2); APB2时钟72MHz SystemFrequency_APB2Clk = SYSCLK_FREQ_72MHz; 2、若自己定义时钟,则利用RCC的一些库函数配置,配置流程如下: <1>RCC_DeInit(); <2>使能外部高速晶振; <3>使能预取指缓存(flash); //一般可不用配置 <4> 设置代码延时值; //一般可不用配置 <5>设置高速总线时钟; <6>设置低速总线2时钟; <7>设置低速总线1的时钟; <8>配置PLL时钟; <9>使能PLL时钟; <10>设置系统时钟; <11>使能外设时钟 具体代码如下: void RCC_Configuration(void) { RCC_DeInit(); ///重置了RCC的设置,类似寄存器复位 RCC_HSEConfig(RCC_HSE_ON); ///使能外部高速晶振 while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET); //等待HSE稳定 /* //// 注意:等待HSE稳定亦可用下面的函数语句 ///// HSEStartUpStatus = RCC_WaitForHSEStartUp(); ///// if (HSEStartUpStatus == SUCCESS) //// { //// 将下面的函数全部(<3>到<11>)包含近来即可 //// } */ FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); ///使能预取指缓存 //一般可不用配置 FLASH_SetLatency(FLASH_Latency_2); ///设置代码延时值;令Flash处于等待状态,2是针对高频时钟 //一般可不用配置 RCC_HCLKConfig(RCC_SYSCLK_Div1); ///设置高速总线时钟=系统时钟 RCC_PCLK2Config(RCC_HCLK_Div1); ///设置低速总线2时钟=高速总线时钟 RCC_PCLK1Config(RCC_HCLK_Div2); /// 设置低速总线1的时钟=高速时钟的二分频 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); ///配置PLL时钟 ,利用锁相环讲外部8Mhz晶 振 /// 9倍频到72Mhz RCC_PLLCmd(ENABLE); ///使能PLL时钟 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); ///等待锁相环输出稳定 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /// 将锁相环输出设置为系统时钟 while(RCC_GetSYSCLKSource() != 0x08); ///校验PLL是否为系统时钟 使能外围接口总线时钟,注意各外设的隶属情况,不同芯片的分配不同; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);// 使能APB2外设GPIOB时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);// 使能APB2外设GPIOA时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE);// 使能APB2外设GPIOC时钟 } |
| 谢谢分享。 |
![]() ![]() ![]() ![]() ![]() ![]() |
| 学些一下,谢谢! |
| 学习一下。 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版