之前做的板子都是用的stm32f405rgt6芯片,这是一款性能很强悍的单片机,一片要20块钱左右。我做的东西用到的功能也比较少,用这么好的芯片真的有点浪费,后来偶然发现了一款stm32f401ret6,功能刚好满足要求,而且价格很低,一片比405便宜了8块钱左右呢。于是决定尝试这款芯片,这两款芯片都是lqfp64的封装的,而且功能都非常相似,主要的区别就是存储空间和频率不一样。于是我直接将401的芯片焊接到405的板子上,然后载入程序,却发现频系统时钟频率始终上不去,401的最大工作频率是84mhz,无论我怎么修改pll的值,最大能正常运行的工作频率只能达到42mhz,再设置大了就直接不工作了。这个问题困扰了我好久,既然低频率能运行,说明板子没问题啊,可是为什么高了就不行呢,我甚至怀疑我买的晶振是不是假的。在网上也没有搜到这样的问题。还是偶然间,发现了有个叫小钢**的cannon的蓝牙开发板,用的也是stm32f401ret6,仔细看了它的原理图后才发现,401和405的引脚分布并不一样。405里面的31脚和47脚VCAP是接2.2uf电容到地的。而401里面的VCAP是30脚,这个脚要接电容。401里面的31脚和47脚要直接接地。改过来后,一切正常。 |