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

2019-07-20 04:22发布

用STM32F7板子 的输入捕获进行高电平时间长短的测量,,能不能每一个高电平都捕捉到测量啊,频率最高50K,占空比50%,也就是高电平的时间是20微秒,虽然能测到但是老是丢失高电平的个数,基本上就是1K丢失一个高电平,测到的时间数就会少这一个,到50K的时候基本就会丢失20几个数了,不知道是输入捕获的问题还是我程序配置的问题啊,输入捕获最高能测到多高的频率啊,求教原子哥解答,,或者原子哥能给指导一下,有没有另一种思路啊,,谢谢原子哥了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
30条回答
bucker
1楼-- · 2019-07-22 01:45
 精彩回答 2  元偷偷看……
wlq390934605
2楼-- · 2019-07-22 07:45
stm32的中断速度是1us(绝大多数); 部分处于纳秒级; 以前用407做ESP8266底层,串口2250000(2.5MByte不丢字节(频率2250000*(8+2)))
13969873363
3楼-- · 2019-07-22 11:17
bucker 发表于 2018-12-19 18:19
我喜欢寄存器方式的,有点老顽固,对于hal库我是实在不了解。从硬件角度看,50k的频率不应该丢中断,应该 ...

我高电平的时间是固定的,但就是如果有一个时刻脉宽发生变化了,我要测到这个脉宽的时间是多少,我在检查一下我的中断处理部分看看,谢谢您的指导哈
13969873363
4楼-- · 2019-07-22 16:47
 精彩回答 2  元偷偷看……
wlq390934605
5楼-- · 2019-07-22 22:15
我提的的中断响,并没有想过要解决你的问题,你高阻高速示波器,测工作波形的状态,或许有收获,如无就只能改代码,如,中断处理简洁,用寄存器处理中断,中断内先清状态再处理等等等
bucker
6楼-- · 2019-07-22 23:59
本帖最后由 bucker 于 2018-12-20 20:47 编辑
13969873363 发表于 2018-12-19 20:41
我高电平的时间是固定的,但就是如果有一个时刻脉宽发生变化了,我要测到这个脉宽的时间是多少,我在检查 ...

你测的高电平时间只有10US,CPU几乎是频繁被中断。你可以改用两个引脚,一个监视上升沿另一监视下降沿,这样有个好处,你只需设置下降沿中断就可以了,下降沿中断时,因为上升沿的记忆值还在寄存器中不会被覆盖,只需在下降沿中断一起读出来。

一周热门 更多>