STM8S 定时器1互补输出pwm
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分频 1M500
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这个芯片上没有输出波形。求解答
本人新手一枚,求大神看一下
改成都是输出极性为低。试试看行不行吧。
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);
请参考库中的工程——“STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Examples\TIM1\TIM1_ComplementarySignals_DeadTime_Break_Lock”
toofree 发表于 2018-7-13 12:27
请参考库中的工程——“STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Examples\TIM1\TIM1_ComplementarySi ...
就是参考标准库的代码,不行啊 す疯Ⅱ恒す 发表于 2018-7-13 11:18
改成都是输出极性为低。试试看行不行吧。
TIM1_OC1Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1 ...
试过了,不行 已经解决 芝麻科技 发表于 2018-7-30 18:06
已经解决
能告诉我怎么解决的吗,老哥?
感谢楼主分享!虽然不知道什么时候用的到,不过还是感谢楼主分享精神! 看着挺复杂的,要好好学习了
页:
[1]