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

2019-07-21 09:01发布

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

各位大侠还有什么好的办法吗?求解啊!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
翱翔云端的鸟
1楼-- · 2019-07-22 01:43
回复【6楼】正点原子:
---------------------------------
找了好久 没找到PWM溢出中断
翱翔云端的鸟
2楼-- · 2019-07-22 06:48
回复【4楼】正点原子:
---------------------------------
或者只是简单的定时器溢出中断
oid TIM3_IRQHandler(void)
{
  if(TIM3->SR&0X0001)//溢出中断
  {
     ....     //计数
  }
  TIM3->SR&=~(1<<0);//清除中断标志位
}
正点原子
3楼-- · 2019-07-22 11:12
回复【9楼】翱翔云端的鸟:
---------------------------------
看我们开发板:定时器中断例程。
shallwe
4楼-- · 2019-07-22 14:22
回复【4楼】正点原子:
---------------------------------
你好  原子哥    中断计数的话  那怎么停止呢    还有停止了还想让他循环发送呢    
有没有实现好的源程序呢   我是STM32F103
正点原子
5楼-- · 2019-07-22 17:57
 精彩回答 2  元偷偷看……
Lambert.lu
6楼-- · 2019-07-22 19:11
回复【11楼】shallwe:
---------------------------------
我也是在学习中,不知道以下回答对不对,仅供参考。 
按你要求的频率设置TIMERX计数器周期的值,再设置 TimeCount比较值(TimerX_Period值/2), 当一个周期计数完成,就会产生TimerX的溢出中断,中断就标示一个PWM脉冲完成,这样会比较精确。

一周热门 更多>