2、STM32 系统时钟配置


    STM32F103外部接8M的振荡器,经过倍频后最高可达72MHz。目前TI的M3系列芯片最高可达80MHz。在stm32固件库3.0中对时钟频率的选择进行了大大的简化,系统调用函数为 SystemInit();该函数中会对系统各个总线时钟进行如下配置 :

constuint32_t  SystemFrequency = SYSCLK_FREQ_72MHz;           /* 硬件频率 */

constuint32_t  SystemFrequency_SysClk = SYSCLK_FREQ_72MHz;    /* 系统时钟 */

const uint32_t SystemFrequency_AHBClk = SYSCLK_FREQ_72MHz;    /* AHB总线频率  */

constuint32_t  SystemFrequency_APB1Clk = SYSCLK_FREQ_72MHz/2; /* APB1总线频率 */

constuint32_t  SystemFrequency_AHB2Clk = SYSCLK_FREQ_72MHz;   /* APB2总线频率 */

上面的函数只能将时钟设置为72MHz,如果需要自己定义各个总线的时钟,可进行如下初始化 :

void RCC_HSE_Configuration(void)
{
     RCC_DeInit();                /* 将外设RCC寄存器重设为缺省值 */
     RCC_HSEConfig(RCC_HSE_ON);   /* 设置外部高速晶振(HSE)打开 */                                             
     if (RCC_WaitForHSEStartUp() == SUNCESS) /* 等待外部晶振HSE起振 */
     {    	
	/* 设置AHB时钟HCLK : RCC_SYSCLK_Div1 – AHB时钟 = 系统时钟 */
	RCC_HCLKConfig(RCC_SYSCLK_Div1);                                                                    
        /* 设置高速AHB时钟 PCLK2 : RCC_HCLK_Div1 – AHB2时钟 = HCLK */
	RCC_PCLK2Config(RCC_HCLK_Div1);

        /* 设置低速AHB时钟 PCLK1 : RCC_HCLK_Div2 – AHB1时钟 = HCLK/2 */
	RCC_PCLK1Config(RCC_HCLK_Div2);                                                                
	/* 设置PLL时钟源及倍频系数, 9 表示倍频的倍数 8*9 = 72MHz */                                   
	RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);                                           
	/* 使能PLL */
	RCC_PLLCmd(ENABLE);                                                                                
	/* 检查指定的RCC标志位-PLL是否准备好 */
	while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);	                                            
	/* 设置系统时钟 */
	RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);                                                        
	/* 0x08 : PLL作为系统时钟 */
        while(RCC_GetSYSCLKSource() != 0x08);
    }
}




 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值