本帖最后由 蜗牛蜗牛 于 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 设置成一样频率,这样可行吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
咋弄啊? 内部是8M 必须2分频那就是4M 倍频最大是16倍 那就是4*16=64M 你这个128怎么出来的?
你是不是当成外部的了,外部时钟可以倍频到128M 内部只能设置到64M
HSI可以在MCO时钟输出的,拉条线连到XIN就是了。多占用2个IO。程序稍微折腾点,曲线救国搞到高频率。
牛逼啊,原理上没问题,你要是测试过能用,那就是能用了
一周热门 更多>