han-411255 发表于 2013-7-5 12:46:33

STM8L 使用discovery板输出PWM到LED的问题

STM8L 使用discovery板输出PWM到LED的问题
我想用PWM(PD2)输出模拟信号到LED(PE7),实现LED的逐渐变亮(暗),
可是不成功,各位高手给指出错误吧,谢谢
void main(void)
{
  /* Initialize LEDs mounted on STM8L152X-EVAL board */
  GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_Mode_Out_PP_Low_Fast);
  GPIO_Init(Button_GPIO_PORT, Button_GPIO_PINS, GPIO_Mode_In_FL_No_IT);
    // PD2 TIM1 CH1设置
  /* GPIO configuration: TIM1 channel 1 (PD2)*/
  GPIO_Init(GPIOD, GPIO_Pin_2 , GPIO_Mode_Out_PP_Low_Fast);
  /* Enable TIM1 clock */
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE);
 
  //设置TIM1 CH1输出PWM波
  /* configure TIM1 channel 1 as PWM Output */
   TIM1_OC1Init(TIM1_OCMode_PWM2,
               TIM1_OutputState_Enable,
               TIM1_OutputNState_Enable,
               0x7FF,
               TIM1_OCPolarity_Low,
               TIM1_OCNPolarity_High,
               TIM1_OCIdleState_Set,
               TIM1_OCNIdleState_Reset);
  /* Set TIM1 Autoreload value*/
  TIM1_SetAutoreload(0xFFF);
  //2M/4095=488.4HZ
   
  // 使能
  /* Enable TIM1 Outputs*/
  TIM1_CtrlPWMOutputs(ENABLE);
  /* Enable TIM1 */
  TIM1_Cmd(ENABLE);
 
 while (1)
  {
     }
  }

废鱼 发表于 2013-7-6 10:14:20

RE:STM8L 使用discovery板输出PWM到LED的问题

如果控制LED的变化,是通过2种方式。通过控制电压的大小和通过控制电流的大小来实现的。通常建议使用电流来控制。

hewei821113246 发表于 2015-1-17 10:11:42

怎么没有初始化定时器tim1?
看我的一个STM8L的使用TIM3输出PWM的初始化
void Buzzer_Init(void)
{
                        /* Enable TIM3 CLK */
CLK_PeripheralClockConfig(CLK_Peripheral_TIM3, ENABLE);                  //允许TIM3外部时钟
GPIO_Init(Buzzer_PORT,Buzzer_PIN,GPIO_Mode_Out_PP_Low_Slow);        //初始化蜂鸣器控制引脚
       
        //使用TIM3定时器
        TIM3_TimeBaseInit(TIM3_Prescaler_16,TIM3_CounterMode_Up,BUZZER_PERIOD);       
                                                                                                                                        //设置为16分频,向上计数模式,计数周期为1000
        TIM3_OC1Init(TIM3_OCMode_PWM1,TIM3_OutputState_Enable, BUZZER_DUTY,TIM3_OCPolarity_High,TIM3_OCIdleState_Reset);
       
        TIM3_OC1PreloadConfig(ENABLE);         //输出比较1通道预加载使能
        TIM3_CtrlPWMOutputs(ENABLE);          //PWM输出使能
        TIM3_Cmd(ENABLE);       
}                                                                                        //使能       
经实际测试初始化有效

忙音与白衬衫 发表于 2017-4-16 11:06:28

您好!请问楼主问题解决了么,我是新手 ,遇到同样的问题,能指点一下么,谢谢

zcl201207 发表于 2017-4-17 21:52:42

按时间改变PWM的占空比就可以了。。。。。。

忙音与白衬衫 发表于 2017-4-18 20:19:21

zcl201207 发表于 2017-4-17 21:52
按时间改变PWM的占空比就可以了。。。。。。

新手,不懂额:(:(请指教
页: [1]
查看完整版本: STM8L 使用discovery板输出PWM到LED的问题