[产品应用] 系统时钟从8MHz改到48MHz后程序跑飞

[复制链接]
133|34
jkl21 发表于 2026-4-18 08:56 | 显示全部楼层
必须在切换系统时钟源之前完成Flash等待周期的配置。
modesty3jonah 发表于 2026-4-18 11:07 | 显示全部楼层
当系统时钟提升至48MHz时,单片机指令执行速度远超Flash的响应能力,导致读取指令或数据时出现时序错乱,最终程序跑飞
wengh2016 发表于 2026-4-18 14:57 | 显示全部楼层
当系统时钟超过此阈值时,必须通过插入等待周期补偿Flash访问延迟,否则单片机会因读取到错误指令/数据导致程序跑飞。
claretttt 发表于 2026-4-18 17:10 | 显示全部楼层
程序跑飞的根本原因是Flash操作时钟超过24MHz且未配置等待周期。
iyoum 发表于 2026-4-19 13:58 | 显示全部楼层
CW32F030 Flash预取缓存如何优化取指效率?
sanfuzi 发表于 2026-4-19 14:59 | 显示全部楼层
修改时钟后程序还是跑飞,可能是什么原因?
pl202 发表于 2026-4-19 15:32 | 显示全部楼层
Flash等待周期的作用是什么?
pentruman 发表于 2026-4-19 16:03 | 显示全部楼层
Flash访问速度不匹配              
jonas222 发表于 2026-4-19 16:34 | 显示全部楼层
在24MHz至48MHz区间内需准确设定为2个等待周期。
robincotton 发表于 2026-4-19 17:01 | 显示全部楼层
切换时钟前还需配置哪些关键寄存器?
晚晚皆安 发表于 2026-4-21 16:22 | 显示全部楼层
楼主可以尝试按照官方文档的指导,修改FLASH_CR2寄存器的WAIT位,看是否能解决问题。
在曼谷的春 发表于 2026-4-27 13:35 | 显示全部楼层
按照你提供的信息,超过24MHz时需要调整FLASH_CR2寄存器的WAIT位,这是正确的。
Moon月 发表于 2026-5-2 21:43 | 显示全部楼层
可以通过检查单片机的状态寄存器来判断flash等待周期是否设置正确,如果状态寄存器显示的等待周期与配置值一致,则配置正确。
zephyr9 发表于 2026-5-4 16:37 | 显示全部楼层
重构代码得注意,顺序搞错可能导致时序问题,要小心!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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