PWM发脉冲,怎么精确控制发脉冲的个数呢?

2019-07-21 09:01发布

STM32的PWM发送脉冲,周期和脉宽都可调了,但是现在不知道如何精确的控制所发的脉冲个数。
具体要求就是在一段时间内大概50ms内发送5000-1W个脉冲  个数要很精确,误差2个以内可以接受
该怎么控制呢?
1.接上一个外部中断口,在中断中计数
2.用一个定时器 对发脉冲的时间进行控制

各位大侠还有什么好的办法吗?求解啊!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
Jerry_9527
1楼-- · 2019-07-26 06:51
网布 发表于 2016-3-29 17:10
有个局限性,如果要两路不同频率的PWM信号同时发出不同个数呢?

这个的确是存在的, 如果要频率不同需要在加一路定时器,实际应用的时候有那么特殊吗?
这种情况,之前也考虑过,后来觉得没那个必要。一个控制电机,相同的速度能达到效果,何必自己找罪受!
网布
2楼-- · 2019-07-26 08:47
Jerry_9527 发表于 2016-3-29 19:42
这个的确是存在的, 如果要频率不同需要在加一路定时器,实际应用的时候有那么特殊吗?
这种情况,之前 ...

还有个问题请教下,用这种方法怎么实现加减速比较好?
Jerry_9527
3楼-- · 2019-07-26 09:43
网布 发表于 2016-3-30 16:43
还有个问题请教下,用这种方法怎么实现加减速比较好?

这个应该再简单不过了,改变PWM主控制的ARR,不就改变输出频率了吗;占空比50%即可!
黑色铅笔芯
4楼-- · 2019-07-26 10:49
翱翔云端的鸟 发表于 2015-11-5 14:40
[mw_shl_code=c,true]void TIM4_GPIO_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;

楼主,您好!我看您的程序Tim4是主定时器,负责两路PWM输出,TIM2和TIM3为从模式定时器用来计数输出固定PWM波个数,对吧?但是我看程序中有个数组XBUF[],不是特别理解。XBUF[0]是指TIM4的定时周期;程序中的XBUF[1]和XBUF[3]是设置从定时器的定时周期,XBUF[1]和XBUF[3]是不是就是设置输出波的个数~期待您的回答!谢谢~
农夫
5楼-- · 2019-07-26 10:56
 精彩回答 2  元偷偷看……
拂晓光明·
6楼-- · 2019-07-26 15:37
本帖最后由 拂晓光明· 于 2016-8-30 11:09 编辑
整鼓猩 发表于 2015-11-5 18:36
回复【21楼】翱翔云端的鸟:
---------------------------------
#define        PrescalerValue         57

已验证23楼代码,效果拔群,感谢分享

一周热门 更多>