![]() |
![]() |
![]() |
![]() ![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
ISPRO下载型编程器 |
ByteBlaster II Cable |
ISPRO下载型编程器 支持S51/AVR/PIC |
超级51开发板套件 前卫实用超值 |
||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
51单片机升级STM32 火爆销售中 |
MPLAB-ICD2 火爆销售中 |
LED51开发板 玩具又名图文显示棒 |
面板模块/开发板 |
![]() |
![]() |
![]() |
![]() |
SMS短信模块 工业级/全自动 |
您当前位置:电子技术资料 -> STM32 -> STM32配置时钟 -> |
![]() ![]() |
STM32 v3.3固件库 使用内部时钟HSI做为系统时钟
类别:技术文章 来源:未知 作者:未知 关键字:HSI 加入日期:2013-10-7 STM32 v3.3固件库 使用内部时钟HSI做为系统时钟 考虑使用内部时钟HSI。 首先在主程序中注释掉SystemInit() 然后使用下面的函数做为系统时钟的初始化函数 void RCC_Configuration(void) { RCC_DeInit();//将外设 RCC寄存器重设为缺省值 RCC_HSICmd(ENABLE);//使能HSI while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET)//等待HSI使能成功 { } if(1) { //FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //FLASH_SetLatency(FLASH_Latency_2); RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div2); RCC_PCLK2Config(RCC_HCLK_Div1); //设置 PLL 时钟源及倍频系数 RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_2); //使能或者失能 PLL,这个参数可以取:ENABLE或者DISABLE RCC_PLLCmd(ENABLE);//如果PLL被用于系统时钟,那么它不能被失能 //等待指定的 RCC 标志位设置成功 等待PLL初始化成功 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) { } //设置系统时钟(SYSCLK) 设置PLL为系统时钟源 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //等待PLL成功用作于系统时钟的时钟源 // 0x00:HSI 作为系统时钟 // 0x04:HSE作为系统时钟 // 0x08:PLL作为系统时钟 while(RCC_GetSYSCLKSource() != 0x08) { } } } ----------------------------------------- Set_USBClock() ------- 两句话: RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5); /* Enable USB clock */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE); 72M除1。5=48 然后允许USB的时钟。这个要看一下数据手册。从数据手册比较好理解。它是直接从PCLK中除一个数,可以除1也可以除1.5.. 这段还是比较好理解的。 您可能还会关注的相关技术资料: 暂无 |
中国电子网 |
www.EC66.com |
QQ:34740080 EMAIL:iloveaoe@163.com |
最佳浏览:1024*768 |
Copyright (C) 2001-2010 EC66.COM All Rights Reserved |
Aoe/帝国 制作维护 |
粤ICP备18061901号 |
![]() |