你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
han-411255 提问时间:2013-7-5 12:46 /
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)
  {
     }
  }
收藏 评论5 发布时间:2013-7-5 12:46

举报

5个回答
废鱼 回答时间: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的占空比就可以了。。。。。。

新手,不懂额请指教
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版