STM8S之TIM2_CH1输出不了PWM波解决办法

最近由于项目需要,用到STM8S103F3P6,开发方式采用库函数方式开发,编译环境为ST Visual Develop+Cosmic CxSTM8 32K 4.3.4。初始化PWM的程序如下:

void TIM2_Init(void)
{
    TIM2_TimeBaseInit(TIM2_PRESCALER_1, 999);/*1分频 ,计数值8000,频率=16M/8000=2kHZ*/
    /* PWM1 Mode configuration: Channel1 */
    /*TIM2 Channel1 duty cycle = [TIM2_CCR1/(TIM2_ARR + 1)] * 100 = 50 */
    TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE,500, TIM2_OCPOLARITY_HIGH);
    TIM2_OC1PreloadConfig(ENABLE);
    /* PWM2 Mode configuration: Channel2 */
    TIM2_OC2Init(TIM2_OCMODE_PWM2, TIM2_OUTPUTSTATE_ENABLE,500, TIM2_OCPOLARITY_HIGH);
    TIM2_OC2PreloadConfig(ENABLE);
    /* PWM3 Mode configuration: Channel3*/
    TIM2_OC3Init(TIM2_OCMODE_PWM2, TIM2_OUTPUTSTATE_ENABLE,500, TIM2_OCPOLARITY_HIGH);
    TIM2_OC3PreloadConfig(ENABLE);
    TIM2_Cmd(ENABLE);
}

结果在用逻辑分析仪去抓PC5脚一直抓不到信号,但是TIM2的CH3通道PD3脚却可以抓到信号。

原因是:我在STVP这个烧录软件里面,把PC5选成了SPI引脚,要选成定时器引脚才可以输出PWM。

STM8S之TIM2_CH1输出不了PWM波解决办法_第1张图片

更改为TIM_CH1模式,再次烧录,看实验现象,成功输出。

你可能感兴趣的:(单片机)