[其他ST产品] STM32系统时钟的问题

[复制链接]
1304|19
 楼主| 七毛钱 发表于 2024-10-24 11:03 | 显示全部楼层 |阅读模式
利用固件库3.5MDK460,在编写程序的时候可以不需要配置系统时钟,直接打开相应的外设中断即可。在编译环境中有一个启动汇编文件.s的文件。当编译程序时启动文件直接进入系统时钟初始化C文件然后在执行到主程序中!这样理解对吗?
renzheshengui 发表于 2024-11-6 13:30 | 显示全部楼层
使用固件库可以大大简化STM32开发过程中的时钟配置工作,但我们仍需了解时钟配置的基本概念和流程
tpgf 发表于 2024-11-6 14:46 | 显示全部楼层
我觉得这样理解是没有问题的  不过一般来说默认配置也够用了
elephant00 发表于 2024-11-6 16:35 | 显示全部楼层
虽然系统时钟的配置和外设中断的打开是两个相对独立的过程,但它们在程序执行的过程中可能会相互关联。在大多数情况下,使用标准的固件库和启动文件时,系统时钟的初始化会在程序开始执行之前自动完成。
guanjiaer 发表于 2024-11-8 08:03 | 显示全部楼层
使用固件库3.5MDK460时,确实可以在编写程序时不需要手动配置系统时钟,直接打开相应的外设中断即可
heimaojingzhang 发表于 2024-11-8 10:57 | 显示全部楼层
在编译环境中存在一个启动汇编文件(.s文件),当编译程序时,启动文件会直接进入系统时钟初始化C文件,然后执行到主程序中
keaibukelian 发表于 2024-11-8 13:58 | 显示全部楼层
STM32的固件库提供了时钟配置函数,这些函数在SystemInit()函数中被调用,用于完成对系统时钟的配置。默认情况下,固件库的时钟配置函数会将HSI作为时钟源,并使能HSI,随后尝试启动HSE
paotangsan 发表于 2024-11-8 16:57 | 显示全部楼层
对于大多数应用来说,固件库的默认时钟配置已经足够满足需求,因此开发者通常不需要更改时钟配置
renzheshengui 发表于 2024-11-8 19:57 | 显示全部楼层
如更换外部晶振或调整系统时钟频率,可以通过修改固件库中的相关宏定义和配置函数来实现
yellow555 发表于 2024-11-8 21:01 来自手机 | 显示全部楼层
在编译环境中有一个启动汇编文件.s的文件
公羊子丹 发表于 2025-1-24 17:08 | 显示全部楼层
楼主理解得基本没问题,启动文件会调用SystemInit函数初始化系统时钟,然后再跳转到main函数。
周半梅 发表于 2025-1-24 17:10 | 显示全部楼层
如果你不需要特别的时钟配置,可以用默认的HSI时钟,启动文件会直接帮你初始化好。
帛灿灿 发表于 2025-1-24 17:11 | 显示全部楼层
在标准库的结构里,启动文件的确会先运行系统初始化代码,时钟初始化是它的一个重要部分。
童雨竹 发表于 2025-1-24 17:12 | 显示全部楼层
你说的外设中断应该是通过标准库的API使能的,这和系统时钟初始化流程是分开的。
万图 发表于 2025-1-24 17:13 | 显示全部楼层
如果有特殊的时钟需求,比如使用外部晶振HSE,就需要修改SystemInit或手动调用SystemClock_Config。
Wordsworth 发表于 2025-1-24 17:15 | 显示全部楼层
启动文件一般是startup_stm32xxxx.s,它的作用是设置中断向量表和跳转到初始化代码,SystemInit函数就是在这里被调用的。
Bblythe 发表于 2025-1-24 17:17 | 显示全部楼层
如果是裸机编程,启动文件的作用确实是先初始化系统硬件环境,再进入主程序。你可以看下.s文件里是如何调用的。
Pulitzer 发表于 2025-1-24 17:18 | 显示全部楼层
默认情况下,STM32会使用内部8MHz HSI作为时钟源,如果对时钟要求不高,这个默认配置就够用了。
Uriah 发表于 2025-1-24 17:19 | 显示全部楼层
如果你的程序运行没有问题,说明启动文件和系统初始化代码的配合已经正确,不需要额外修改。
Clyde011 发表于 2025-1-24 17:20 | 显示全部楼层
建议看一下system_stm32xxxx.c文件,这里面的SystemInit函数就是专门初始化系统时钟和其他硬件的地方。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

400

主题

2801

帖子

4

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