STM32更换晶振后没及时修改定时器参数,导致运算出错

来源:互联网 发布:微博淘宝网页链接 编辑:程序博客网 时间:2024/04/20 10:45

记录一下今天的惨痛经历。

之前板子上面是11.0592M的晶振。现在把晶振换成了8M的,这样9倍频后可以跑72MHz.

但是我换了晶振后,没有及时修改TIM2里面进中断的时间,导致后面的一系列的运算出错。而且我排查了两个小时,一直没想到是这个参数错了。


还有就是keil5软件总体上比keil4好用很多。但是之前keil4有个满好的功能,就是在仿真的时候吗,它的外设选项点开后,能显示各个外设运行的时钟频率,,而现在的版本没有了。

这样我就不能直观的看到定时器的运行时钟了。不过也有一个笨点的办法能够看出来,那就是通过拉高拉低GPIO口,然后用示波器来看。

伪代码如下:

void TIMX_IRQ()

{

if(i == 0)

      {

GPIO_Setbits(XXX);    i = 1;

      }

      else

{

   GPIO_Resetbits(xxxx); i = 0;

}

}

这样通过示波器观察这个IO口,就能推出定时器的时钟,最终也能确定系统时钟对不对。


主意:这里面有个小小的问题。就是用示波器看到的是方波信号,比如量下来是500Hz;但是高电平的时候和低电平的时候都是进了定时器的中断,所以定时器进中断的频率是1000Hz。





0 0
原创粉丝点击