完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
因为一个项目,需要测量一个外界一个频率变化的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口上有很大的干扰,但是又不知道如何在电路上处理一下. 希望有知道的大侠能指点我一下,谢谢了 |
|
相关推荐
3个回答
|
|
不会 我也 是才学
|
|
|
|
|
|
|
|
应该在加一个计算PWM的占空比(或者计算PWM在高电平期间的脉宽长度与低电平期间的脉宽长度),在一秒内有多少个这样的脉宽,而不是直接有一个上升沿就进行计数。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
878 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
936 浏览 2 评论
2044 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1145 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1568 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 02:26 , Processed in 0.694409 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号