[APM32F0] 1分钟教会你HSE切换成HSI--基于极海官方例程

[复制链接]
 楼主| Fordhs168 发表于 2023-6-30 15:35 | 显示全部楼层 |阅读模式
本帖最后由 Fordhs168 于 2023-6-30 15:35 编辑

#技术资源#
极海官方例程基本都是基于外部晶振HSE配置的程序,极海例程在system.apm32f0xx.c文件中以宏定义形式可以很方便选择主频。但是都是基于外部晶振HSE来配置。想要换成HSI也很简单,基于当前选择的宏,找到对应的systemclolck**M(void);函数,做几个修改轻松搞定。


M0、M3、M4系列的例程都一样,下面拿个M0系列F030的官方例程做个示例需要注意PLL倍频系数,参考手册,根据所需主频做修改。
微信图片_20230630095922.png

uptown 发表于 2023-7-5 15:27 | 显示全部楼层
如果 PLL 当前正在使用 HSE 作为其输入源,请先关闭 PLL。可以通过设置 RCC_CR 寄存器的 PLLON 位为 0 来实现。
mollylawrence 发表于 2023-7-5 15:51 | 显示全部楼层
将RCC_OscInitStruct结构体成员中的RCC_OscInitStruct.PLL.PLLSource设置为RCC_PLLSOURCE_HSI。
pixhw 发表于 2023-7-5 16:03 | 显示全部楼层
HSI 的频率通常较低于 HSE,所以可能需要相应地调整延时函数中的参数。
timfordlare 发表于 2023-7-5 16:21 | 显示全部楼层
通过函数HAL_RCC_OscConfig(), 配置更新RCC的寄存器设置。
jackcat 发表于 2023-7-5 16:52 | 显示全部楼层
将系统时钟源从 HSE 切换到 HSI,需要配置 RCC_CFGR 寄存器。
caigang13 发表于 2023-7-6 07:43 来自手机 | 显示全部楼层
国内MCU厂家的库文件名称和分类基本上也是和ST一致啊
janewood 发表于 2023-7-6 11:48 | 显示全部楼层
,切换时钟源是一个关键且敏感的操作,请确保按照 apm32f0xx相应的参考手册和官方文档提供的指导进行操作。
51xlf 发表于 2023-7-6 11:57 | 显示全部楼层
在代码的适当位置调用HAL_RCC_OscConfig()和HAL_RCC_ClockConfig()函数。
wwppd 发表于 2023-7-6 12:05 | 显示全部楼层
在切换时钟源之前,确认代码不依赖于外部高速时钟,并且HSI提供的频率满足应用需求。
plsbackup 发表于 2023-7-6 16:08 | 显示全部楼层
在代码中找到RCC_InitTypeDef结构体变量,用于配置RCC寄存器的设置。
robincotton 发表于 2023-7-6 16:29 | 显示全部楼层
如果外设需要一个特定的时钟频率,可能需要修改 APB 分频系数或其他相关时钟设置。

maqianqu 发表于 2023-7-6 17:12 | 显示全部楼层
可以在将 HSE 切换到 HSI 后重新配置并打开 PLL。请确保根据需要重新设置合适的倍频系数和分频系数,并将 PLLON 位置为 1。
tpgf 发表于 2023-7-7 14:18 | 显示全部楼层
我们在切换的过程中 所有涉及到的外设是不是都应该暂停使用呢
晓伍 发表于 2023-7-7 14:49 | 显示全部楼层
如果换掉时钟源的话  使用当前时钟源的外设会不会瘫痪
wakayi 发表于 2023-7-7 15:45 | 显示全部楼层
只是把我们常规的配置寄存器换成了一个宏定义是吗
木木guainv 发表于 2023-7-7 19:15 | 显示全部楼层
在切换的过程中如何对现场进行保护呢
paotangsan 发表于 2023-7-7 19:46 | 显示全部楼层
调用这个函数是不是只涉及到了时钟的更换啊
renzheshengui 发表于 2023-7-7 20:17 | 显示全部楼层
那有这么简单 所有涉及到使用HSE的外设都得重新初始化吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

29

帖子

0

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