STM32
直播中

回头太晚

10年用户 921经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

STM8S003F3 PWM无输出的原因?怎么解决?

  //整体初始化
void BSP_Configuration(void)
{
    CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);  //配置内部高速振荡器(HSI)的分频器--1分频
    GPIO_init();
    UART1_Congfiguration();//串口1初始化函数
    #ifdef CONTROL_RX
      TIM1_PWM_Init();
    #endif
    Tim2_Init();
    para_init();
    __enable_interrupt();//中断使能
}

void TIM1_PWM_Init(void)
{

    TIM1_DeInit();  
    TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, 1600, 0);     //初始化TIM1时基单元  预分频值(0x0000)   向上计数   自动重装载值(2000)  重复计数器值(0)
    //PC1 输出PWM波形
    TIM1_OC1Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_DISABLE, 800, TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_SET, TIM1_OCNIDLESTATE_RESET);   // PWM1模式2   启用互补输出比较   脉冲宽度初值是1000   输出比较极性(低电平) 互补输出比较极性 (低电平) 输出比较空闲状态(置位) 互补输出比较空闲状态(复位)        
    //PC2 输出PWM波形
    TIM1_OC2Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_DISABLE, 800, TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_SET, TIM1_OCNIDLESTATE_RESET);  
}

调用TIM1_SetCompare1(800);   但结果  PC6脚无PWM输出 。知道的大神帮指导下,急待解决!芯片STM8S003F3 TSSOP20


回帖(1)

刘阳

2024-4-19 14:50:25
建议你参考标准外设库的例程,这样就比较容易了。初步看来少了主输出控制{:1:}。
  /* TIM1 Main Output Enable */
  TIM1_CtrlPWMOutputs(ENABLE); [/td]

[td]  /* TIM1 counter enable */
  TIM1_Cmd(ENABLE);

  /* TIM1 Main Output Enable */
  TIM1_CtrlPWMOutputs(ENABLE); [/td]

[td]003F3要注意输出引脚的复用功能,如果你的PWM输出通道引脚刚好是复用的,请在烧录配置里选中复用引脚,这样引脚才能输出PWM。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分