赞
踩
在遇到此问题后也是网上查了很多,主要相关原因是:1.boot0没下拉接地(接不接下拉10K电阻影响不大,只要保持低电平即可,这个很重要建议好好检查)2.用了printf函数,需要在魔术棒里勾线useMicLib 3.还有一些比如没勾选reset and run之类的原因,出现频率很少,主要是前面两点问题。下面分享下我的悲惨经历:
1.上电发现程序不跑,于是进入debug模式,发现卡在系统初始化函数。
2.断点打到System函数里面,单步执行发现卡在Setsysclk函数。
3.再次断点,打在Setsysclk里,单步执行发现又能执行完整个函数,然后执行到主函数。尼玛,无语!
4.将程序烧录到开发板,发现完美运行,此时判断和软件无关,应该是自己设计的电路板有问题。
5。检查电路。示波器看8m晶振起振有效,排除。boot0下拉10k接地常低,排除。Reset常高,排除。开始没接32.768k低速时钟,飞了两根线接上去了(同事帮飞的,牛逼!),没改变,排除。换了新的32,没改变,排除。 最后对着原理图检查线路通断,还是没问题。此时已经很无奈了,软件没问题,硬件没问题,难道是我霉吗。
6.实在没办法了,检查一下元器件有没有焊错吧(概率很低),结果发现8M晶振并联的电阻是特么的1k的,赶紧拆下换上1M,换上完美解决!!!!!!!!!!!!!!!!!!!!!!
总结:有时候一个元器件也能影响整个电路,设计时检查好,配料时检查好,电装后检查好!最后再检查你的代码,软的东西都好说,硬件一定要好好检查!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。