首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32的时钟系统RCC详细整理(4)

STM32的时钟系统RCC详细整理(4)

2、使用寄存器进行RCC时钟初始化配置

void RCC_init(u8 PLL)//输入PLL的倍频值216倍频

//HCLK=PLLCLK=SYSCLK=P2CLK=P1CLK*2=ADCCLK*2=TIMCLK=USBCLK*2/3
{

unsigned char temp=0;


//RCC_DeInit();

//RCC寄存器重新设置为默认值


RCC->CR|=0x00010000;
//外部高速时钟使能HSEON

while(!(RCC->CR>>17));//等待外部时钟就绪


RCC->CFGR=0X00000400; //APB1=DIV2;APB2=DIV1;AHB=DIV1;

PLL-=2;//抵消2个单位


RCC->CFGR|=PLL<<18;
//设置PLL倍频值 2~16

RCC->CFGR|=1<<16;

//PLL时钟源选择


FLASH->ACR|=0x32;

//FLASH 2个延时周期


RCC->CR|=0x01000000;
//PLLON

while(!(RCC->CR>>25));//等待PLL锁定


RCC->CFGR|=0x00000002;//PLL作为系统时钟


while(temp!=0x02)
//等待PLL作为系统时钟设置成功


{


temp=RCC->CFGR>>2;

temp&=0x03;

}

}
继承事业,薪火相传
返回列表