完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32F746-Disco、Win 10、CubeIDE 1.8.0、仅 CMSIS(无 HAL)、C。
我决定将我的 MCU 时钟从 HSI 16MHz 更改为带有 PLL 的全 216MHz。我已经为 PLL 参数设置了正确的值,但是每当我实际将系统时钟切换到 PLL 时,它就会崩溃(如果我不这样做,它就不会崩溃)。 这是一个完整的空项目,仅注册来自 MCU 特定标头和 m7 内核的定义。现在它是一个空项目,只点亮一个 LED - 如果它到达那里,就是这样。 我换了AHB、APB分频器,一切正常。只要我在 HSI 上,它仍然可以正常工作。我配置 PLL 并确保设置了值 - 调试器显示所有正确的值,我用笔和纸对每个位进行三次检查。字面上地。 我注意到 HAL 在时钟设置期间激活 PWR 外围设备,但我没有这样做。参考手册中对 PWR 外围设备的描述没有理由相信它与它有任何关系,但也许我忽略了一些东西。 这是有趣的部分:
它在 RCC->CFGR |= RCC_CFGR_SW_PLL 上崩溃;如果我不执行该行(注释掉),我会留在 HSI 上并且不会崩溃,工作完全正常。 我错过了什么?为什么会出现错误?我在参考手册中找不到任何暗示我做错了什么的东西。 我发现 HAL 启用 PWR 并启用超速和超速切换。所以我也这样做了。没有不同。以下是我的做法(功能上与 HAL 时钟初始化代码相同):
我调试了我的代码和 CubeMX 生成的代码。决定比较 RCC 和 PWR 寄存器以防我遗漏了什么。 碾压混凝土: CR - 与位相同 PLLCFGR - 与位相同 CFGR - 与钻头相同 压水堆: CR1 - 与位相同 CSR1 - 与位相同 CR2 - 与位相同 CSR2 - 与位相同 除了我的代码崩溃。我没主意了。 |
|
相关推荐
2个回答
|
|
与使用 216MHz 的 CubeMX 代码相比!在功能上,我忘了更改闪存延迟!它奏效了(我还不太了解闪存)。
|
|
|
|
闪存延时怎么改啊
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2617 浏览 1 评论
3203 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1776 浏览 1 评论
3602 浏览 6 评论
5981 浏览 21 评论
934浏览 4评论
1311浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
579浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1299浏览 3评论
1353浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 18:33 , Processed in 1.187214 second(s), Total 49, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号