TIM1输出PWM时必须有TIM_CtrlPWMOutputs(TIM1, ENABLE);,而TIM3不用这条指令就可以直接输出PWM,并且TIM_CtrlPWMOutputs(TIM3, DISABLE);还关闭不了PWM输出,请问这是为什么呢?
void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState)
{
/* Check the parameters */
assert_param(IS_TIM_LIST2_PERIPH(TIMx));
assert_param(IS_FUNCTIONAL_STATE(NewState));
if (NewState != DISABLE)
{
/* Enable the TIM Main Output */
TIMx->BDTR |= TIM_BDTR_MOE;
}
else
{
/* Disable the TIM Main Output */
TIMx->BDTR &= (uint16_t)(~((uint16_t)TIM_BDTR_MOE));
}
}
C:\Documents and Settings\Administrator\桌面
原来TIM3没有那个寄存器
那个寄存器只有高级定时器才有的。
恩,但是库里和手册里没有直接说
这个手册肯定是有描述的。至于库函数的注释肯定也说明了。
如果你使能了参数检查:【STM32F303开发】+库函数参数检查 ,程序就会检测到你调用的参数错误了,这个在各个系列的库里都有参数检测,可能命名不太一样。
您讲的真详细,看的太透彻了,谢谢啦
恩,你说的不错,确实可以
原来是TIM1和TIM3的区别