请选择 进入手机版 | 继续访问电脑版

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

STM8S 定时器1互补输出pwm

[复制链接]
芝麻科技 提问时间:2018-7-13 11:03 /
void TIM1_PWM_Init(void)
{
    GPIO_Init(PWM1_PORT,PWM1_PIN,GPIO_MODE_OUT_PP_LOW_FAST);
    GPIO_Init(PWM1N_PORT,PWM1N_PIN,GPIO_MODE_OUT_PP_HIGH_FAST);
    TIM1_DeInit();

   //初始化TIM1时基单元  预分频值(0x0000)   向上计数   自动重装载值(2000)  重复计数器值(0)
    TIM1_TimeBaseInit(16, TIM1_COUNTERMODE_UP, 500, 0); //16M的cpu,16分频 1M  500
    TIM1_ARRPreloadConfig(ENABLE);//使能自动重装

    // PWM1模式2   启用互补输出比较   脉冲宽度初值是1000   输出比较极性(低电平) 互补输出比较极性 (高电平) 输出比较空闲状态(置位) 互补输出比较空闲状态(复位)
    //PC6 输出PWM波形
    TIM1_OC1Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE, 500-1, TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_SET, TIM1_OCNIDLESTATE_RESET);           


    TIM1_Cmd(ENABLE);             //启用或者关闭定时器1
    TIM1_CtrlPWMOutputs(ENABLE);  //自动预装载允许位
}

这是源代码,在stm8s上面不能输出互补的两路,CH1和CH2的波形一样。怎么输出两路互补的波形。奇怪的是在stm8s003f3这个芯片上没有输出波形。求解答

收藏 评论11 发布时间:2018-7-13 11:03

举报

11个回答
芝麻科技 回答时间:2018-7-13 11:04:38
本人新手一枚,求大神看一下
疯de_恒 回答时间:2018-7-13 11:18:21

改成都是输出极性为低。试试看行不行吧。
TIM1_OC1Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE, 500-1, TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_LOW, TIM1_OCIDLESTATE_SET, TIM1_OCNIDLESTATE_RESET);   


评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

七哥 回答时间:2018-7-13 12:27:41
请参考库中的工程——“STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Examples\TIM1\TIM1_ComplementarySignals_DeadTime_Break_Lock”
傲游截图20180713122615.png

傲游截图20180713122720.png



评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

芝麻科技 回答时间:2018-7-13 12:48:55
toofree 发表于 2018-7-13 12:27
请参考库中的工程——“STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Examples\TIM1\TIM1_ComplementarySi ...

就是参考标准库的代码,不行啊
芝麻科技 回答时间:2018-7-13 12:49:14
す疯Ⅱ恒す 发表于 2018-7-13 11:18
改成都是输出极性为低。试试看行不行吧。
TIM1_OC1Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1 ...

试过了,不行
芝麻科技 回答时间:2018-7-30 18:06:59
已经解决

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1 可以分享下解决方法啊

查看全部评分

非常感 回答时间:2018-10-20 21:26:47

能告诉我怎么解决的吗,老哥?
玄月11 回答时间:2018-10-22 15:05:33

感谢楼主分享!虽然不知道什么时候用的到,不过还是感谢楼主分享精神!
robter 回答时间:2018-10-24 07:41:38
看着挺复杂的,要好好学习了
doctorsoft 回答时间:2020-12-3 13:18:09
TIM1_OC1Init(TIM1_OCMODE_PWM2,TIM1_OUTPUTSTATE_ENABLE,TIM1_OUTPUTNSTATE_ENABLE,300,TIM1_OCPOLARITY_LOW,TIM1_OCNPOLARITY_LOW,TIM1_OCIDLESTATE_SET,TIM1_OCNIDLESTATE_RESET);
  这样改就可以了
墨土 回答时间:2023-2-21 15:51:28

请问如何解决,我亦遇到同样问题
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版