我的芯片的AT32F415CBT7,用的是内部高速时钟HSI。我用官方提供的例程AT32F4xx_StdPeriph_Lib_V1.3.0\Project\AT_START_F415\Examples\RCC\ClockConfig\MDK_v5
测试配置系统时钟。
直接运行例程,程序是可以正常运行,系统会按程序的设计,从24M,36M,48M,56M,一步步升到到72M.
但是我一运行,就直接配置到72M或高于72M的时钟,程序就运行异常。
这是官方的程序,index = 0;
for(ClkSrc = PLL_HSI; ClkSrc < PLL_HSE; ClkSrc ++)
{
for(index = 0; index < sizeof(ClockTable)/sizeof(ClkConfStruct); index ++)
{
SysclkConfig(ClkSrc, ClockTable[index].Sysclk);
MCO_config();
AT32_Board_Init();
UART_Print_Init(115200);
printf("switch sysclk to %dMhz \r\n", ClockTable[index].Sysclk);
Delay_ms(100);
}
}
我只是把index = 0;改成index = 4;也就是一开始配置成72M,这样程序就无法运行,没办法运行到时钟配置后面的程序,感觉程序跑飞了。 |