最近在用一块STM32F103VB的板子,用的3.5的固件库,程序跑起来了,功能也实现了,但感觉时钟频率不对,用一段死循环的程序测试主频,有的时候正常有的时候不正常,但串口外设的打印都是正常的,说明外设频率没有问题,只是CPU内核的主频有变化。
有时候将编译选项从O0换到O2问题消失,但有时候不消失,有时候加一行无用的代码问题消失,有时候又不消失。
把设置PLL的超时时间宏HSE_STARTUP_TIMEOUT改为最大值也无法解决问题。
我使用的是外部8M晶振,在stm32f10x.h文件里打开了STM32F10X_MD和USE_STDPERIPH_DRIVER宏定义,应该是将单板配置成了72MHZ。
试了很多种方法,但问题仍然不确定出现。
将程序烧写到芯片内部,无论如何上下电,如果是出现则一直出现,如果不出现则一直不出现。
将程序增减一些无关的代码,重新烧写,问题就有可能出现或者不出现,无论如何上下电,如果是出现则一直出现,如果不出现则一直不出现。
不知道哪位遇到过这种情况没有,请给指条明路,万分感谢! |