打印
[STM8]

用TIME1输出PWM 输出不了

[复制链接]
492|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
renyaq|  楼主 | 2020-9-8 21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM8L151G6 用TIME1输出PWM 输出不了

使用特权

评论回复
沙发
huwr| | 2020-9-8 21:11 | 只看该作者

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
renyaq|  楼主 | 2020-9-8 21:15 | 只看该作者
初始化函数:
void TIM1_PWM_Init(void)
{
    GPIO_Init(GPIOD, GPIO_Pin_1, GPIO_Mode_Out_PP_Low_Fast);   //输出推拉,低电平,10MHz
    TIM1_DeInit();  
    TIM1_TimeBaseInit(1599, TIM1_CounterMode_Up, 2000, 0);  //初始化TIM1时基单元  预分频值()   向上计数   自动重装载值(2000)  重复计数器值(0)
    //PD1 输出PWM波形
    TIM1_ARRPreloadConfig(ENABLE);
   
    TIM1_OC1Init( TIM1_OCMode_PWM1 , TIM1_OutputState_Enable, TIM1_OutputNState_Disable, 1000, TIM1_OCPolarity_High , TIM1_OCNPolarity_High, TIM1_OCIdleState_Set, TIM1_OCNIdleState_Set);   // PWM1模式2   启用互补输出比较   脉冲宽度初值是1000   输出比较极性(低电平) 互补输出比较极性 (低电平) 输出比较空闲状态(置位) 互补输出比较空闲状态(复位)        
    TIM1_OC2Init( TIM1_OCMode_PWM1 , TIM1_OutputState_Enable, TIM1_OutputNState_Disable, 1000, TIM1_OCPolarity_High , TIM1_OCNPolarity_High, TIM1_OCIdleState_Set, TIM1_OCNIdleState_Set);
    TIM1_OC3Init( TIM1_OCMode_PWM1 , TIM1_OutputState_Enable, TIM1_OutputNState_Disable, 1000, TIM1_OCPolarity_High , TIM1_OCNPolarity_High, TIM1_OCIdleState_Set, TIM1_OCNIdleState_Set);
   
    TIM1_CCxCmd(TIM1_Channel_1, ENABLE);
    TIM1_CCxCmd(TIM1_Channel_2, ENABLE);
    TIM1_CCxCmd(TIM1_Channel_3, ENABLE);
   
    TIM1_OC1PreloadConfig(ENABLE);
    TIM1_OC2PreloadConfig(ENABLE);
    TIM1_OC3PreloadConfig(ENABLE);
   
   
    TIM1_CtrlPWMOutputs(ENABLE);  
    TIM1_Cmd(ENABLE);   
  
}
主函数:

void BSP_Configuration(void);

void main(void)
{


  BSP_Configuration();
  while (1)
  {
    GPIO_ToggleBits(GPIOC,GPIO_Pin_6);
    delay_ms(500);

  }  

}

void BSP_Configuration(void)
{      
    CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);  // 设置系统时钟为 HSI
    CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);  // 设置时钟分频数为 1 (16 MHz)

    while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSI)  
         {}

    LED_Init();//LED GPIO 管脚初始化
//    Beep_Init();
//    KEY_Init();
    Init_Timer4();
    TIM1_PWM_Init();
    __enable_interrupt();
   
}
void BSP_Configuration(void);

void main(void)
{


  BSP_Configuration();
  while (1)
  {
    GPIO_ToggleBits(GPIOC,GPIO_Pin_6);
    delay_ms(500);

  }  

}

void BSP_Configuration(void)
{      
    CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);  // 设置系统时钟为 HSI
    CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);  // 设置时钟分频数为 1 (16 MHz)

    while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSI)  
         {}

    LED_Init();//LED GPIO 管脚初始化
//    Beep_Init();
//    KEY_Init();
    Init_Timer4();
    TIM1_PWM_Init();
    __enable_interrupt();
   
}

使用特权

评论回复
地板
songqian17| | 2020-9-8 21:20 | 只看该作者
定时器1的外设时钟是否打开了?

使用特权

评论回复
5
llljh| | 2020-9-8 21:23 | 只看该作者
好像没看到。
  /* Enable TIM1 clock */
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE);

使用特权

评论回复
6
houcs| | 2020-9-8 21:27 | 只看该作者
您那什么现象呀

使用特权

评论回复
7
pangb| | 2020-9-8 21:31 | 只看该作者
代码好像不全

使用特权

评论回复
8
renyaq|  楼主 | 2020-9-8 21:36 | 只看该作者

唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

700

主题

10138

帖子

4

粉丝