用输入捕获测高电平的时间,,能不能每一个高电平都捕捉到啊

2019-07-20 04:22发布

用STM32F7板子 的输入捕获进行高电平时间长短的测量,,能不能每一个高电平都捕捉到测量啊,频率最高50K,占空比50%,也就是高电平的时间是20微秒,虽然能测到但是老是丢失高电平的个数,基本上就是1K丢失一个高电平,测到的时间数就会少这一个,到50K的时候基本就会丢失20几个数了,不知道是输入捕获的问题还是我程序配置的问题啊,输入捕获最高能测到多高的频率啊,求教原子哥解答,,或者原子哥能给指导一下,有没有另一种思路啊,,谢谢原子哥了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
30条回答
bucker
1楼-- · 2019-07-21 04:46
 精彩回答 2  元偷偷看……
13969873363
2楼-- · 2019-07-21 06:16
bucker 发表于 2018-12-17 21:23
有一个问题是存在的,我发现STM32中断延迟是比较大的,0.3uS~0.5uS是可能有的,你可以做个试验,让定时器 ...

现在我把频率降到了1K,有时会一秒丢一个,有时不丢,,那这样我用三路同时采集的话,捕获中断是不是应该是所有中断当中最高的,而且这三路中断的优先级是不是应该相同?谢谢你的指导
bucker
3楼-- · 2019-07-21 10:54
先建议你这样做,贴上定时器的初始化和算法的源码,贴出初始化后KEIL中此定时器的寄存器值,别人才有可能帮着找原因。
我的理解是除了原子介绍的PWM方式外,同一个引脚需要先设置捕捉上升沿,在中断服务程序中将捕获方式改为下降沿,在下一次中断后还要改为捕捉上升沿才可以,不知你是怎么处理的。
13969873363
4楼-- · 2019-07-21 16:06
 精彩回答 2  元偷偷看……
bucker
5楼-- · 2019-07-21 19:52
 精彩回答 2  元偷偷看……
13969873363
6楼-- · 2019-07-21 22:25
bucker 发表于 2018-12-18 21:25
因为我没有407的板子可调试,只能看你的寄存器配置后的值了,从截图看是只能捕捉上升沿吧,你需要测量高 ...

嗯嗯,我是在中断里将定时器改为下降沿捕获的,脉宽测得是对的,但就是丢数,我再检查一下,谢谢你哈

一周热门 更多>