时钟
三种不同的时钟源可被用来驱动体系时钟(SYSCLK):
● HSI振荡器时钟
● HSE振荡器时钟
● PLL时钟 这些设备有以下2种二级时钟源:
● 40kHz低速内部RC,能够用于驱动独立看门狗和经过程序挑选驱动RTC。RTC用于从停机/待机形式下主动唤醒体系。
● 32.768kHz低速外部晶体也可用来经过程序挑选驱动RTC(RTCCLK)。 当不被使用时,任一个时钟源都可被独登时发动或封闭,由此优化体系功耗。
1.当HSI被用于作为PLL时钟的输入时,体系时钟能得到的最大频率是64MHz。
2.关于内部和外部时钟源的特性,请参阅相应产品数据手册中“电气特性”章节。 用户可经过多个预分频器装备AHB、高速APB(APB2)和低速APB(APB1)域的频率。AHB和APB2域的最大频率是72MHz。APB1域的最大答应频率是36MHz。SDIO接口的时钟频率固定为HCLK/2。
RCC经过AHB时钟(HCLK)8分频后作为Cortex体系定时器(SysTick)的外部时钟。经过对SysTick操控与状况寄存器的设置,可挑选上述时钟或Cortex(HCLK)时钟作为SysTick时钟。ADC时钟由高速APB2时钟经2、4、6或8分频后取得。
定时器时钟频率分配由硬件按以下2种状况主动设置: 1. 假如相应的APB预分频系数是1,定时器的时钟频率与地点APB总线频率共同。 2. 不然,定时器的时钟频率被设为与其相连的APB总线频率的2倍。
void RCC_Configuration(void)
{
SystemInit();
RCC_APB2PeriphClockCmd(USARTy_GPIO_CLK | USARTz_GPIO_CLK | RCC_APB2Periph_AFIO, ENABLE);
#ifndef USE_STM3210C_EVAL
RCC_APB2PeriphClockCmd(USARTy_CLK, ENABLE);
#else
RCC_APB1PeriphClockCmd(USARTy_CLK, ENABLE);
#endif
RCC_APB1PeriphClockCmd(USARTz_CLK, ENABLE);
}