打印
[STM8]

STM8L151G6 用TIME1输出PWM 输出不了,求教!

[复制链接]
1349|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ZZBZZBZZBZZB|  楼主 | 2018-11-22 17:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初始化函数:
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();
   
}
沙发
ZZBZZBZZBZZB|  楼主 | 2018-11-22 20:29 | 只看该作者
哪位大神指教下

使用特权

评论回复
板凳
734774645| | 2018-11-22 21:36 | 只看该作者
这年头大神最不愿帮人看代码。我刚喝完酒还晕改天给你看

使用特权

评论回复
地板
ZZBZZBZZBZZB|  楼主 | 2018-11-23 10:40 | 只看该作者
734774645 发表于 2018-11-22 21:36
这年头大神最不愿帮人看代码。我刚喝完酒还晕改天给你看

好的,感谢!

使用特权

评论回复
5
香水城| | 2018-11-26 14:40 | 只看该作者
定时器1的外设时钟是否打开了?好像没看到。
  /* Enable TIM1 clock */
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE);

使用特权

评论回复
6
观海| | 2018-11-27 12:54 | 只看该作者
您那什么现象呀

使用特权

评论回复
7
wowu| | 2018-12-3 14:42 | 只看该作者
代码好像不全

使用特权

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

本版积分规则

2

主题

12

帖子

0

粉丝