怎样用输出脉冲个数和频率可调的方波用来驱动步进电机

2019-07-21 01:55发布

我现在的思路是:使用两个定时器TIM2和TIM3用STM32定时器的主从模式。
手册上说可以使用一个定时器使能另一个定时器,但是怎样关闭从定时器?
可不可以在主定时器使能了从定时器时,主定时器开始计时,到达想要关闭从定时器的时间时,触发中断在中断服务程序中清从定时器的CEN位。

有没有更好的办法??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
大宝1107
1楼-- · 2019-07-23 18:16
 精彩回答 2  元偷偷看……
追忆童年200x
2楼-- · 2019-07-23 19:54
 精彩回答 2  元偷偷看……
追忆童年200x
3楼-- · 2019-07-23 22:32
回复【17楼】正点原子:
---------------------------------
为什么我用5楼写的函数驱动步进电机
void Task2()
{
TIM2_TIM3_PWM(70,1700);   //步进电机驱动函数 70代表一个脉冲的周期,1700代表脉冲个数
while(1);
}  按下按键后进入这个函数,来驱动步进电机转动,为啥有的时候电机转够1700个脉冲,有的时候只稍微动一下就停下了 ,根本不够1700个脉冲所转的度数。
while(1)
{
TIM2_TIM3_PWM(70,1700);
Delay_ms(500);
}
如果是这个程序,他就会转1700个脉冲,然后停一会,再转1700,这样循环。
求解答。
追忆童年200x
4楼-- · 2019-07-24 01:14
回复【17楼】正点原子:
---------------------------------
补充一下27楼的问题,我的按键接的是pc0-3和pc13这几个接口,会不会是这几个接口对Tim2,Tim3这两个定时器有干扰。
非常工程师
5楼-- · 2019-07-24 06:52
楼主,你问题解决了吗?我现在跟你差不多想实现步进电机变速控制,但是我现在一个单片机带了三台步进电机,是不是这样不太好实现啊?
RYOMARYOMA
6楼-- · 2019-07-24 07:09

楼主,我用的你的代码,用逻辑分析仪仿真的,PA0和PA6都没输出,如果把TIM2的CHANNEL1设置成这种形式才会有波形输出:TIM_SelectOnePulseMode(TIM2,TIM_OPMode_Repetitive),这是为什么呢??

一周热门 更多>