微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 用外部中断或者定时器测量外部PWM信号频率的问题

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

时间:10-02 整理:3721RD 点击:
因为一个项目,需要测量一个外界一个频率变化的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口上有很大的干扰,但是又不知道如何在电路上处理一下.
       希望有知道的大侠能指点我一下,谢谢了

不会  我也 是才学

谢谢帮顶.

应该在加一个计算PWM的占空比(或者计算PWM在高电平期间的脉宽长度与低电平期间的脉宽长度),在一秒内有多少个这样的脉宽,而不是直接有一个上升沿就进行计数。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top