您的位置 首页 技术

stm32v3.5库的时钟装备

在基于STM32的35版本库函数的开发应用中,其时钟初始化函数SystemInit()函数是在启动文件中被调用的,而且其调用是在Main()函数之前,所

在根据STM32的3.5版别库函数的开发使用中,其时钟初始化函数SystemInit()函数是在发动文件中被调用的,并且其调用是在Main()函数之前,所以说,假如不计划修正其默许的体系时钟(sysclk72M,AHB 72M,PCLK1 36M,PCLK272M,PLL 72M),在main函数中能够不增加体系时钟初始化函数SystemInit()函数,其在相应的函数文件中现已被设置好了。

假如要对体系时钟进行从头设置,能够在main()函数中对其进行从头配置,也就回到了较早版别的ST开发库的使用之中,现举例如下:

1、以外部高速晶振为时钟源

void RCC_PLL_Configuration(void)

{

RCC_DeInit();

RCC_HSEConfig(RCC_HSE_ON);

if(RCC_WaitForHSEStartUp() == SUCCESS) {

RCC_HCLKConfig(RCC_SYSCLK_Div1);

RCC_PCLK2Config(RCC_HCLK_Div1);

RCC_PCLK1Config(RCC_HCLK_Div2);

FLASH_SetLatency(FLASH_Latency_2);

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

RCC_PLLConfig(RCC_PLLSource_HSE_Div2, RCC_PLLMul_3);

RCC_PLLCmd(ENABLE);

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ;

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

while(RCC_GetSYSCLKSource() != 0x08);

}

}

2.以内部高速晶振为时钟源(可在外部晶振损坏时选用,精度稍低,之前有同志问到过这个问题,现在此给出)

void RCC_HSI_Configuration(void){

RCC_DeInit();

RCC_HSICmd(ENABLE);

while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET);//等候HSI安排妥当

RCC_HCLKConfig(RCC_SYSCLK_Div1);

RCC_PCLK2Config(RCC_HCLK_Div1);

RCC_PCLK1Config(RCC_HCLK_Div2);

FLASH_SetLatency(FLASH_Latency_2);

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);

while(RCC_GetSYSCLKSource() != 0x00);

}

假如体系不必72M能够在这里修正

#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)

#define SYSCLK_FREQ_24MHz 24000000
#else

#define SYSCLK_FREQ_72MHz 72000000

#endif

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/259269.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部