完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
嗨,我想了解STM32 mcu的启动过程。所以我对 STM32 和 HAL 有很好的了解,但我想更深入地了解寄存器。
所以我创建了一个空白项目,只包含外设头文件 (stm32wb55xx.h)、(system_stm32wbxx.c)、启动脚本 (startup_stm32wb55xx_cm4.s) 和 main.c,我在其中实现了一个闪烁,它正在运行。我在哪里设置 RCC->AHB2ENR(启用时钟)寄存器,但我不确定它的频率和来自 SYSCLK、HCLK、AHB、APB1 的频率... 据我了解,启动脚本是从 system_stm32wbxx.c 调用 SystemInit() 函数,其中时钟设置为默认值,然后调用主函数,可以更改时钟配置? 如果我错了请纠正我!如果有人有一些正确设置时钟的链接或文档。 谢谢 |
|
相关推荐
1个回答
|
|
|
需要三个文件来告诉你(几乎)关于你的 stm32 的一切。它们是数据表、参考手册和编程手册。
数据表包含大量电气、时序和引脚分配信息。 参考手册中的信息量很大,密密麻麻,乍一看会让人毛骨悚然。它描述了ST设计的stm32的所有位。 那么stm32的哪些部分不是ST设计的呢?arm 核心和核心外围设备,例如矢量中断控制器。这些在编程手册中有描述。 您会在哪里找到问题的答案?我在两个地方看到了答案: 在数据表中,第 3.10 节“时钟和启动” 启动时钟:复位后,微控制器默认使用内部 4 MHz 时钟 (MSI) 重新启动。一旦代码执行开始,应用程序就可以更改预分频比和时钟源。 在参考手册中,第 8.4 节 RCC 寄存器。时钟源的关键寄存器是RCC_CR和RCC_CFGR。 参考手册说在上电复位时 RCC_CR 是 0x00000061 所以 MSI 是 4 MHz 并且启用;RCC_CFGR 为 0x00070000,因此系统时钟开关选择 MSI,因此选择 4 MHz。 参考手册还说,在从待机复位唤醒时,RCC_CR 为 0x00000160,因此 HSI 已启用(16 MHz);RCC_CFGR 是 0x00070001,因此系统时钟开关选择 HSI,因此选择 16 MHz。 现在这些手册中有大量的细节,可能令人生畏和反感。因此 ST 编写了 HAL 的东西,给你一个“简单的”C 接口。但我发现 HAL 的文档不足;除了使用示例和 HAL 函数的源代码,我看不到更多内容。所以我更喜欢使用参考手册指导的寄存器访问。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
stm32mp157的异核通信的rpmsg_sdb的m4固件和a7驱动该如何编写?
1453 浏览 0 评论
stm32f103用freertos对一个采样率为1kHz的传感器,进行采样,数据出差
1502 浏览 0 评论
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
3649 浏览 1 评论
3842 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
2461 浏览 1 评论
STM32H7打开DCache后,出现了串口接收信息为空的现象,是哪里出了问题?
727浏览 5评论
用NANO STM32F103RBT6的开发板烧录不了是哪里出了问题?
661浏览 5评论
710浏览 5评论
外部中断触发类型为双边沿触发,进入中断回调后有什么办法判断该边沿是上升沿还是下降沿?
941浏览 5评论
STM32L071CBT6低温环境下无法正常工作是什么原因引起的?
745浏览 5评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 06:08 , Processed in 0.468561 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1832