打印
[STM8]

请问如何配置STM8S105 TIM1 CH1-CH4各通道才能输出PWM信号

[复制链接]
3134|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如题,有哪位高手知道如何配置STM8S105的TIM1各个通道才能输出PWM信号?不胜感激
根据官方例子修改,CH2和CH4能正常输出PWM,但是CH1和CH3就是不正常
#define CCR1_Val  ((uint16_t)2047)
#define CCR2_Val  ((uint16_t)1535)
#define CCR3_Val ((uint16_t)1023)
#define CCR4_Val  ((uint16_t)511)
static void TIM1_Config(void)
{

   TIM1_DeInit();

  /* Time Base configuration */
  /*
  TIM1_Period = 4095
  TIM1_Prescaler = 0
  TIM1_CounterMode = TIM1_COUNTERMODE_UP
  TIM1_RepetitionCounter = 0
  */

  TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, 4095, 0);

  /* Channel 1, 2,3 and 4 Configuration in PWM mode */
  
  /*
  TIM1_OCMode = TIM1_OCMODE_PWM2
  TIM1_OutputState = TIM1_OUTPUTSTATE_ENABLE
  TIM1_OutputNState = TIM1_OUTPUTNSTATE_ENABLE
  TIM1_Pulse = CCR1_Val
  TIM1_OCPolarity = TIM1_OCPOLARITY_LOW
  TIM1_OCNPolarity = TIM1_OCNPOLARITY_HIGH
  TIM1_OCIdleState = TIM1_OCIDLESTATE_SET
  TIM1_OCNIdleState = TIM1_OCIDLESTATE_RESET
  
  */
  TIM1_OC1Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE,
               CCR1_Val, TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_SET,
               TIM1_OCNIDLESTATE_RESET);

  /*TIM1_Pulse = CCR2_Val*/
  TIM1_OC2Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE, CCR2_Val,
               TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_SET,
               TIM1_OCNIDLESTATE_RESET);

  /*TIM1_Pulse = CCR3_Val*/
  TIM1_OC3Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE,
               CCR3_Val, TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_SET,
               TIM1_OCNIDLESTATE_RESET);

  /*TIM1_Pulse = CCR4_Val*/
  TIM1_OC4Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, CCR4_Val, TIM1_OCPOLARITY_LOW,
               TIM1_OCIDLESTATE_SET);

  /* TIM1 counter enable */
  TIM1_Cmd(ENABLE);

  /* TIM1 Main Output Enable */
  TIM1_CtrlPWMOutputs(ENABLE);
}


沙发
owenli520|  楼主 | 2015-1-28 11:22 | 只看该作者
没人知道吗?太让人伤心了

使用特权

评论回复
板凳
sjnh| | 2015-1-28 11:40 | 只看该作者
查看IO口的配置,是否配置成输入或者开路输出了,是否被其它功能占用了

使用特权

评论回复
地板
owenli520|  楼主 | 2015-1-28 11:45 | 只看该作者
sjnh 发表于 2015-1-28 11:40
查看IO口的配置,是否配置成输入或者开路输出了,是否被其它功能占用了

你说的这些情况都没有啊

使用特权

评论回复
5
owenli520|  楼主 | 2015-1-28 13:55 | 只看该作者
owenli520 发表于 2015-1-28 11:45
你说的这些情况都没有啊

果然是IO口被其它占用了,粗心了,呵呵,现在正常了,多谢!

使用特权

评论回复
6
sun1238898| | 2015-1-28 16:10 | 只看该作者
或者说看下option byte设置

使用特权

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

本版积分规则

7

主题

57

帖子

0

粉丝