关于stm32高级定时器tim1的OSSR和OSSI位的一个问题(有关BLED.....
本帖最后由 你好我好大家好! 于 2014-12-11 17:33 编辑,我现在也在做stm32驱动BLDC的程序,遇到了两个问题问题,
1,在官方库中所带的输出六步电压的历程中是上下通道都输出pwm的。我想达到的目的是,所有OCx通道根据要求输出pwm波,OCxN要么输出高电平要么输出低电平,既没有pwm输出,这也是stm32手册中的配置,如下图所示,,所以想请教下前辈们怎样配置才能实现啊??、
2,要想达到上面的目的,必须对tim1的OSSR和OSSI位的具体含义清楚的了解,希望前辈们能指点一下,在此先谢谢了
楼主是说单独通道输出PWM吗? 本帖最后由 你好我好大家好! 于 2014-12-11 17:45 编辑
安 发表于 2014-12-11 16:29
楼主是说单独通道输出PWM吗?
我想实现的是如图2.jpg中的那样的波形,step1:l连接T1的通道(OC1)输出pwm,连接T4管的通道(OC2N)输出高电平. step2:l连接T1的通道(OC1)输出pwm,连接T6管的通道(OC3N)输出高电平. step3:l连接T3的通道(OC2)输出pwm,连接T6管的通道(OC3N)输出高电平. step4:l连接T3的通道(OC2)输出pwm,连接T2管的通道(OC1N)输出高电平. step5:l连接T5的通道(OC3)输出pwm,连接T2管的通道(OC1N)输出高电平. step6:l连接T5的通道(OC3)输出pwm,连接T4管的通道(OC2N)输出高电平,即tim1的六路通道中的OCx通道输出pwm波,OCxN通道输出高低电平,不输出pwm波形,也就是1.jpg中虚线下面的波形。
配置的问题,你配置为虚线上面的模式就可以了。 本帖最后由 你好我好大家好! 于 2014-12-13 10:43 编辑
还是自己来回答吧:
对于第一个问题:只要把官方标准库中所带的六步电压历程工程中,令中断函数中上通道的输出模式为 TIM_OCMode_PWM1,互补通道的输出模式改为TIM_OCMode_Active模式就可以实现上通道输出pwm,下同到输出高低电平了。
第二个问题:OSSR位,0:当定时器不工作时,禁止OC/OCN输出(OC/OCN使能输出信号=0);
1:当定时器不工作时,一旦CCxE=1或CCxNE=1,OC/OCN使能并输出无效电平,
然后置OC/OCN使能输出信号=1。
解释:定时器不工作的含义:就是令某一通道失能,即CCxE=0或CCxNE=0。这时一旦当CCxE或CCxNE其中有一个使能时,而另一个失能时,这时失能的通道输出无效电平,使能的通道输出程序中配置的模式。
若有纰漏,欢迎指正!! 安 发表于 2014-12-13 09:36
配置的问题,你配置为虚线上面的模式就可以了。
我下面说了,安哥参考一下看看又要修正或补充的地方吗 手册说的定时器不工作只是通道不使能而已,记住不要cen清0直接关定时器就可以。 你好我好大家好! 发表于 2014-12-13 10:41
我下面说了,安哥参考一下看看又要修正或补充的地方吗
我用STM32F103可以配置出来但是用STM32F407的就是不行这两款的配置有什么不一样吗我看手册是一样的啊 飞跃-355564 发表于 2015-9-18 14:43
我用STM32F103可以配置出来但是用STM32F407的就是不行这两款的配置有什么不一样吗我看手册是一样的 ...
这个问题有很多原因,不现场调试是很难发现问题的 飞跃-355564 发表于 2015-9-18 14:43
我用STM32F103可以配置出来但是用STM32F407的就是不行这两款的配置有什么不一样吗我看手册是一样的 ...
这个问题有很多原因,不现场调试是很难发现问题的
页:
[1]
2