初级会员

- 积分
- 54
- 金钱
- 54
- 注册时间
- 2012-4-14
- 在线时间
- 7 小时
|
5金钱
本帖最后由 势力飞扬 于 2022-8-20 14:09 编辑
自己写了一个RCC的时钟配置函数,但是运行到最后的检测时钟切换那个while循环里,程序就跑飞了,不知道怎么弄了,所以来坛子里请教一下大佬们,下面是源码:
#include <Device.h>
int Device_Init (void);
int Device_Init (void)
{
uint16_t WTime = 0;
uint8_t Retry = 0;
RCC->CR|=(1<<16);
while((RCC->CR&(1<<17)) == 0)
{
if(WTime >= 0xFFFE)
{
Retry = 1;
return Retry;
}
WTime++;
}
Retry = 0;
WTime = 0;
RCC->PLLCFGR |= (1<<22);
RCC->PLLCFGR &= ~(0x3f);
RCC->PLLCFGR |= 5;
RCC->PLLCFGR &= ~(0x1ff<<6);
RCC->PLLCFGR |= (210<<6);
RCC->PLLCFGR &= ~(0x3<<16);
RCC->PLLCFGR |= (2<<16);
RCC->CR |= (1<<24);
while((RCC->CR&(1<<25)) == 0)
{
if(WTime >= 0xFFFE)
{
Retry = 1;
return Retry;
}
WTime++;
}
Retry = 0;
WTime = 0;
RCC->CFGR |= 2;
while((RCC->CFGR&(1<<3)) == 0)
{
if(WTime >= 0xFFFE)
{
Retry =1;
return Retry;
}
WTime++;
}
return 0;
}
这里是跑飞时的情况:
分析了很久都没分析出来,不知道哪里出了问题,希望大佬不吝赐教 @_@
|
|