电路设计,软件开发,专业项目团队承接电子产品开发!


ISPRO下载型编程器
火爆销售中

RS232/TTL转换器
全IC串口窃电

RS232/TTL转换线
全IC串口窃电

ByteBlasterMV Cable
CPLD/FPGA并口下载线

ByteBlaster II Cable ISPRO下载型编程器
支持S51/AVR/PIC
超级51开发板套件
前卫实用超值

PC/MCU/CPLD
三合一学习套件

全新万年历方案
AVR单片机开发板
 

Min51单片机仿真机
迷你型

ARM7开发板
仅售260元!
 

RS-232/RS-485双向接口电平转换器  

51单片机升级STM32
火爆销售中
MPLAB-ICD2
火爆销售中
LED51开发板
玩具又名图文显示棒

面板模块/开发板
经济危机明智决择

       

GSM MODEM GSM猫

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备11071661号