用外部中断或者定时器测量外部PWM信号频率的问题

2019-07-14 23:38发布

tica, SimSun, sans-serif">因为一个项目,需要测量一个外界一个频率变化的PWM波形的频率(这个波形低电平为0V左右,高电平可调到3.3V左右).

我想了两个方案(本人菜鸟,望高人不要见笑,并希望能指点一下)

      方案A:用定时器.

      思路:直接把信号号接到定时器b的一个通道的IO上,用定时器a时定s秒,同时用定时器b的输入捕获模式,设置对PWM波形的上升沿或者下降沿中断,定时器b每中断一次,中断次数n自+1,然后到定时器a定时到s秒后,用串口输入这个时间内的中断次数,达到计算PWM信号频率的目的.(程序一直没有调出来.....所以后来用的方案B)

      方案B:用外部中断

      思路:因为任何一个STM32F103的普通GPIO都可以用来进行外部断检测,所以想到它了.
      
      思路还是和方案A差不多,用定时器a定时s秒,用的是一个GPIO进行外部中断,上升沿触发中断,记录此时外部中断的次数.我直接把外部PWM信号加在了一个普通IO口上.但是有的时候发现检测到的脉冲数不太对,会比实际的多.我知道用外部中断,这样直接加在IO口上有很大的干扰,但是又不知道如何在电路上处理一下.

       希望有知道的大侠能指点我一下,谢谢了

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。