STM单片机是非常节约能到量的芯片,当我们用到哪一个功能需要将相应的时钟开通,就好像水渠的阀门,打开之后就可以有水流过来,可以使用了。
我们用的走马灯是基于GPIOA,所以我们要把GPIOA的时钟打开;
程序如下;
void RCC_Configuration(void)
{
ErrorStatus HSEStartUpStatus;//定义枚举型变量
RCC_DeInit();//复位系统时钟设置
RCC_HSEConfig(RCC_HSE_ON);//开启HSE;
HSEStartUpStatus=RCC_WaitForHSEStartUp();等待开启
if(HSEStartUpStatus==SUCCESS)// 如果开启时钟成功
{
RCC_HCLKConfig(RCC_SYSCLK_Div1);//设置hclk时钟为系统时钟一分频
RCC_PCLK2Config(RCC_HCLK_Div1);//设置PCLK2时钟为hclk时钟1分频
RCC_PCLK1Config(RCC_HCLK_Div2);//设置PCLK1时钟为HCLK时钟2分频
FLASH_SetLatency(FLASH_SetLatency_2);//设置FLASH延迟周期为2
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//是能FLASH预取缓存
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//设置PLL时钟源为HSE的一分频,倍频数为9,所以pll为72MHz
RCC_PLLCmd(ENABLE);//使能PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);//等待PLL稳定;
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//选择SYSCLK时钟为PLLCLK;
while(RCC_GetSYSCLKSource()!=0x08);//等待PLL成为SYSCLK时钟源;
}
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//打开APB2总线上的GPIOA时钟
}
STM32自学笔记 第三篇,单片机走起来,走马灯2
最新推荐文章于 2022-09-26 13:27:02 发布