如果要使用PWM模块输出2kHz,要如何配置

如果要使用PWM模块输出2kHz,要如何配置

如果使用的是8位的pwm,无法设置频率精确到2KHz,会有一点偏差,计算公式可参考此链接:

https://www.cnblogs.com/risc5-ble/p/17386326.html

如果是用的是26位的pwm,可设置精确的2KHz,可参考定时器例程配置,主频默认是60M,

#if 1 /* 定时器3,PWM输出 */

    GPIOB_ResetBits(GPIO_Pin_22); // 配置PWM口 PB22
    GPIOB_ModeCfg(GPIO_Pin_22, GPIO_ModeOut_PP_5mA);
    TMR3_PWMInit(High_Level, PWM_Times_1);
    TMR3_PWMCycleCfg(60 * 100); // 周期 100us  最大67108864
    TMR3_PWMActDataWidth(3000); // 占空比 50%, 修改占空比必须暂时关闭定时器
    TMR3_PWMEnable();
    TMR3_Enable();

#endif

2k频率可如下配置:

#if 1 /* 定时器3,PWM输出 */

    GPIOB_ResetBits(GPIO_Pin_22); // 配置PWM口 PB22
    GPIOB_ModeCfg(GPIO_Pin_22, GPIO_ModeOut_PP_5mA);
    TMR3_PWMInit(High_Level, PWM_Times_1);
    TMR3_PWMCycleCfg(30 * 1000); // 周期 500us  最大67108864
    TMR3_PWMActDataWidth(15000); // 占空比 50%, 修改占空比必须暂时关闭定时器
    TMR3_PWMEnable();
    TMR3_Enable();

#endif



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