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

[复制链接]
 楼主| owenli520 发表于 2015-1-28 10:09 | 显示全部楼层 |阅读模式
如题,有哪位高手知道如何配置STM8S105的TIM1各个通道才能输出PWM信号?不胜感激
根据官方例子修改,CH2和CH4能正常输出PWM,但是CH1和CH3就是不正常
  1. #define CCR1_Val  ((uint16_t)2047)
  2. #define CCR2_Val  ((uint16_t)1535)
  3. #define CCR3_Val ((uint16_t)1023)
  4. #define CCR4_Val  ((uint16_t)511)
  5. static void TIM1_Config(void)
  6. {

  7.    TIM1_DeInit();

  8.   /* Time Base configuration */
  9.   /*
  10.   TIM1_Period = 4095
  11.   TIM1_Prescaler = 0
  12.   TIM1_CounterMode = TIM1_COUNTERMODE_UP
  13.   TIM1_RepetitionCounter = 0
  14.   */

  15.   TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, 4095, 0);

  16.   /* Channel 1, 2,3 and 4 Configuration in PWM mode */
  17.   
  18.   /*
  19.   TIM1_OCMode = TIM1_OCMODE_PWM2
  20.   TIM1_OutputState = TIM1_OUTPUTSTATE_ENABLE
  21.   TIM1_OutputNState = TIM1_OUTPUTNSTATE_ENABLE
  22.   TIM1_Pulse = CCR1_Val
  23.   TIM1_OCPolarity = TIM1_OCPOLARITY_LOW
  24.   TIM1_OCNPolarity = TIM1_OCNPOLARITY_HIGH
  25.   TIM1_OCIdleState = TIM1_OCIDLESTATE_SET
  26.   TIM1_OCNIdleState = TIM1_OCIDLESTATE_RESET
  27.   
  28.   */
  29.   TIM1_OC1Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE,
  30.                CCR1_Val, TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_SET,
  31.                TIM1_OCNIDLESTATE_RESET);

  32.   /*TIM1_Pulse = CCR2_Val*/
  33.   TIM1_OC2Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE, CCR2_Val,
  34.                TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_SET,
  35.                TIM1_OCNIDLESTATE_RESET);

  36.   /*TIM1_Pulse = CCR3_Val*/
  37.   TIM1_OC3Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE,
  38.                CCR3_Val, TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_SET,
  39.                TIM1_OCNIDLESTATE_RESET);

  40.   /*TIM1_Pulse = CCR4_Val*/
  41.   TIM1_OC4Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, CCR4_Val, TIM1_OCPOLARITY_LOW,
  42.                TIM1_OCIDLESTATE_SET);

  43.   /* TIM1 counter enable */
  44.   TIM1_Cmd(ENABLE);

  45.   /* TIM1 Main Output Enable */
  46.   TIM1_CtrlPWMOutputs(ENABLE);
  47. }

STM8S105_1.jpg
 楼主| 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口的配置,是否配置成输入或者开路输出了,是否被其它功能占用了

你说的这些情况都没有啊
 楼主| owenli520 发表于 2015-1-28 13:55 | 显示全部楼层
owenli520 发表于 2015-1-28 11:45
你说的这些情况都没有啊

果然是IO口被其它占用了,粗心了,呵呵,现在正常了,多谢!
sun1238898 发表于 2015-1-28 16:10 | 显示全部楼层
或者说看下option byte设置
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

57

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部