初级会员

- 积分
- 151
- 金钱
- 151
- 注册时间
- 2014-10-7
- 在线时间
- 0 小时
|
5金钱
void My_SetSysClock(u32 sysclk)
{
u8 pllmulti;
My_RCC_DeInit();
pllmulti = (sysclk/HSE_VALUE) - 2;//计算基于外部时钟源时,PLL的倍频因子
RCC->CR |= 1<<16; //使能外部时钟源HSE
while((RCC->CR & 1<<17) == 0); //等待外部时钟源就绪
RCC->CFGR |= pllmulti<<18; //设置PLL倍频
RCC->CFGR |= 4<<8; //AHB=DIV1,APB1=DIV2,APB2=DIV1,注: PCLK1不能超过36MHz
RCC->CFGR |= 1<<16; //选择HSE作为PLL时钟源
FLASH->ACR|= 0x32; //FLASH 2个延时周期
RCC->CR |= 1<<24; //PLL使能
while((RCC->CR & 1<<25)==0); //等待PLL锁定
RCC->CFGR |= 0x02; //PLL作为系统时钟
while((RCC->CFGR>>2 & 3)!=2); //等待系统时钟切换成功
RCC_GetClockFreq(&RCC_ClocksStatus); //获取系统时钟状态
}
int main(void)
{
My_SetSysClock(72000000);//系统时钟设置
delay_init(); //延时初始化
LED_Init(); //初始化与LED连接的硬件接口
LED0 = 1;
LED1 = 0;
while(1)
{
LED0 = ~LED0;
LED1 = !LED1;
delay_ms(1000);
}
}
这个是用外部的。。。但是我想改用内部的。。。不知道怎么改。。。
|
|