请问 CH32V307 上 TIM_CtrlPWMOutputs 函数对TIM3 不起作用吗?
/*********************************************************************
 * @fn      TIM_CtrlPWMOutputs
 *
 * @brief   Enables or disables the TIM peripheral Main Outputs.
 *
 * @param   TIMx - where x can be 1/8/9/10 to select the TIM peripheral.
 *          NewState - ENABLE or DISABLE.
 *
 * @return  none
 */
void TIM_CtrlPWMOutputs(TIM_TypeDef *TIMx, FunctionalState NewState)
{
    if(NewState != DISABLE)
    {
        TIMx->BDTR |= TIM_MOE;
    }
    else
    {
        TIMx->BDTR &= (uint16_t)(~((uint16_t)TIM_MOE));
    }
}

参数说明上没写TIM3,而且datasheet上看TIM3也没有BDTR寄存器。

我直接用发现确实不起作用。

请问TIM3要做到停止输出是不是只能先把占空比调到0,然后停止计时器?

您好,可以看一下该函数注释,该函数只对高级定时器起作用,通用定时器没有BDTR寄存器,该函数对通用定时器是不起作用的,TIM3为通用定时器。若要使TIM停止输出,直接关闭即可,若要想要关闭后输出引脚固定为某一状态,如低电平,可先占空比设置为0再关闭定时器。后续若有问题,可邮箱(lzs@wch.cn)沟通。


只有登录才能回复,可以选择微信账号登录