[APM32F0] 请教APM32F072怎么配置为HSI48MHz

[复制链接]
351|8
davidloon 发表于 2025-8-30 15:47 | 显示全部楼层 |阅读模式


目前用极海提供的SDK包,测到定时1ms 的systick, 测出来是6ms?
HeartbeatEcho 发表于 2025-8-31 16:13 | 显示全部楼层
HSI不是固定的频率吗?
要这么高的主频的话,必须使用PLL来倍频到48MHz才可以
dffzh 发表于 2025-9-1 11:26 | 显示全部楼层
可以去官网找一下SDK看看。
官网地址:https://www.geehy.com/
Alden 发表于 2025-9-1 11:37 | 显示全部楼层
刚好差了6倍,应该是定时器按48M配置,主频是HSI没倍频的8M.可以参考这个配置下HSI倍频:https://bbs.21ic.com/icview-3459364-1-1.html
 楼主| davidloon 发表于 2025-9-1 19:51 | 显示全部楼层
谢谢!已经搞定。官方的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();
}
 楼主| davidloon 发表于 2025-9-1 19:52 | 显示全部楼层
HeartbeatEcho 发表于 2025-8-31 16:13
HSI不是固定的频率吗?
要这么高的主频的话,必须使用PLL来倍频到48MHz才可以
...

谢谢
 楼主| davidloon 发表于 2025-9-1 20:01 | 显示全部楼层
dffzh 发表于 2025-9-1 11:26
可以去官网找一下SDK看看。
官网地址:https://www.geehy.com/

谢谢
DawnFervor 发表于 2025-9-4 20:44 | 显示全部楼层
嘿嘿,原来是这个原因。
是不是要扣程序员的奖金了啊
脑洞星球居民 发表于 2025-9-15 09:23 | 显示全部楼层
您可以尝试使用RCC_HSI48_Enable()函数来启用HSI48,并使用RCC_PLL_Config()函数配置PLL,使其输出48MHz。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部