stm32 原来72M 现在用48M,不正常,怎样设置RCC能正常(尽量简单)

2019-12-22 13:44发布

本帖最后由 蜗牛蜗牛 于 2017-10-11 09:48 编辑

原来的程序是在外部72M系统时钟调节写的,
现在要切要求外部晶振出问题后换到48M内部时钟运行,
(坑爹的是内部时钟只能到64M)现在串口,频率降下来原来好多程序不正常
解决方案是:
1,将每一个驱动程序都写2种时钟的,由于驱动程序很多,再加上调试太麻烦这是下下策
2.我猜测有没有可以设置修改一个值,使得原先72M主频那些时钟频率,让48M晶振也可以都设
置成72M晶振相同的频率,stm32片上外设我用的都是36M频率,理论应该可以,但是有没有这样操作?




越简单越好,有没有外部时钟(72M) 无缝切换内部时钟(48M或者64M)过这样操作?

顺便说一句stm32可以超频到128M ,但是特别不稳定,程序容易死机.


我晶振是外部8M的晶振,倍频9到72M
从那个时钟图可以看出 内部晶振只能8M2分频就是4M 然后倍频16 到64M


从时钟图来看,设置一下AHB 就可以解决, 再麻烦的话就是设置一下 APB1还有APB2,
每次读取系统时钟频率当72M时候 切换到48M 时候(也可以在这期间重启单片机),将AHB 和APB1还有APB2 设置成一样频率,这样可行吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
sme
1楼-- · 2019-12-24 12:54
 精彩回答 2  元偷偷看……
Ray______
2楼-- · 2019-12-24 14:21
建议外部都倍到48M好了,这样子外设改动小。做过与楼主类似的不过不是时钟的兼容式设计,要做到面面俱到是件很难受的事.....