谢谢!已经搞定。官方的SDK程序具有误导性,默认工作频率是8MHz, systick定时是6ms, 注释写的是1ms. 加上48M切换函数就可以了
void SystemClock_Config_HSI48(void)
{
// 使能 HSI48
RCM_EnableHSI48();
while(RCM_ReadStatusFlag(RCM_FLAG_HSI48RDY) == RESET);
// 配置 Flash
FMC_EnablePrefetchBuffer();
FMC_SetLatency(FMC_LATENCY_1);
// 切换系统时钟到 HSI48
RCM_ConfigSYSCLK(RCM_SYSCLK_SEL_HSI48);
while(RCM_ReadSYSCLKSource() != RCM_SYSCLK_SEL_HSI48);
// 配置分频器
RCM_ConfigAHB(RCM_SYSCLK_DIV_1);
RCM_ConfigAPB(RCM_HCLK_DIV_1);
// 更新系统核心时钟变量
SystemCoreClockUpdate();
}
|