请教APM32F072怎么配置为HSI48MHz
目前用极海提供的SDK包,测到定时1ms 的systick, 测出来是6ms?
HSI不是固定的频率吗?
要这么高的主频的话,必须使用PLL来倍频到48MHz才可以
可以去官网找一下SDK看看。
官网地址:https://www.geehy.com/ 刚好差了6倍,应该是定时器按48M配置,主频是HSI没倍频的8M.可以参考这个配置下HSI倍频:https://bbs.21ic.com/icview-3459364-1-1.html 谢谢!已经搞定。官方的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();
} HeartbeatEcho 发表于 2025-8-31 16:13
HSI不是固定的频率吗?
要这么高的主频的话,必须使用PLL来倍频到48MHz才可以
...
谢谢 dffzh 发表于 2025-9-1 11:26
可以去官网找一下SDK看看。
官网地址:https://www.geehy.com/
谢谢 嘿嘿,原来是这个原因。
是不是要扣程序员的奖金了啊 您可以尝试使用RCC_HSI48_Enable()函数来启用HSI48,并使用RCC_PLL_Config()函数配置PLL,使其输出48MHz。
页:
[1]