固件库使用手册上指出,TIM_DeInit()是将外设TIMX寄存器重设为缺省值的功能。
在.c文件中给出了它的定义是:
void TIM_DeInit(TIM_TypeDef* TIMx)
{
/* Check the parameters */
assert_param(IS_TIM_ALL_PERIPH(TIMx));
if (TIMx == TIM1)
{
RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1, ENABLE);
RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1, DISABLE);
}
else if (TIMx == TIM2)
{
RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, ENABLE);
RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, DISABLE);
}
else if (TIMx == TIM3)
{
RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM3, ENABLE);
RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM3, DISABLE);
}
。。。 。。。
那么这个函数不就是定时器时钟使能的意思么?在初始化程序里面已经使能了时钟,还需要把:
TIM_DeInit(TIM2);
写进去么??
我在写定时器产生pwm的程序,看了例程里面是没有用到这个函数的,但是网上有些程序又加入这个函数了,所以很困扰这个函数到底什么情况下用呢?还是说这句话是用不用都没有关系的呢?
谢谢! |