1,stm32定时器输入捕获的问题

可以,我做过,TIM4四通道同时输入捕获,配置好了以后任何通道都会触发中断。

stm32定时器输入捕获的问题

2,stm32f407定时器捕获计算频率完整例程

这个主要是看你的RCC使能的时候用的是HSE还是HSI,这个打开GPIO的时钟只是把你的GPIOB和GPIOA搭载到APB2时钟总线上去

stm32f407定时器捕获计算频率完整例程

3,stm32 定时器

定时器的初值就按照你想定的时间,和你选定的定时器的频率计算(这里注意:首先要看你选的定时器在哪个总线上,是APB1还是APB2?再要确定所在的总线的频率;然后看你定时器初始化的时候写进去的分频数,最后计算出定时器的周期,)用目标定时时间除以定时器周期得出定时器初值。 在定时器的中断里面写上点亮LED的句子,并清掉定时器的中断标志。同时重装载计数初值。(重装载也可以在初始化的时候设置为自动重装载,那样的话,中断里就不需要再装了) 请参考

stm32 定时器

4,stm32定时器多路捕获模式是什么意思

STM32的每个定时器都可以由另一个定时器触发启动定时器一般是通过软件设置而启动,STM32的每个定时器也可以通过外部信号触发而启动,还可以通过另外一个定时器的某一个条件被触发而启动.这里所谓某一个条件可以是定时到时、定时器超时、比较成功等许多条件.这种通过一个定时器触发另一个定时器的工作方式称为定时器的同步,发出触发信号的定时器工作于主模式,接受触发信号而启动的定时器工作于从模式
这4个通道共用一个定时器,比如四个通道输出四部pwm,其频率是一样的,但是占比可以单独修改。

5,我用定时器捕获来测频率高频倒是挺准的低频为什么不准

恐怕是测量方式的问题,高频时你要通过多周期测量得到结果。低频是测某个周期的时间得到结果。简单的讲就是高频时测量有个积分过程,低频时没有。你的比较器再差点,问题就来了。
没有用过stm32,如果输入捕捉的定时器同时支持计数器溢出中断就好办了,每次溢出设置个counter加1,然后就可用算出总的计数值了。如果不支持溢出中断,可用用另一定时器来辅助,举个例子如果你用200k的基准测量,最大计数为256,那么溢出的时间为256/200k秒=256/200ms,另一个定时器(计数基准和输入捕捉的最好相同)设为256/200ms中断,在中断里面也设置一个counter来累积溢出次数。

6,stm32 测频率

没有用过STM32,如果输入捕捉的定时器同时支持计数器溢出中断就好办了,每次溢出设置个counter加1,然后就可用算出总的计数值了。如果不支持溢出中断,可用用另一定时器来辅助,举个例子如果你用200k的基准测量,最大计数为256,那么溢出的时间为256/200k秒=256/200ms,另一个定时器(计数基准和输入捕捉的最好相同)设为256/200ms中断,在中断里面也设置一个counter来累积溢出次数。
复位和时钟控制(rcc)包括以下寄存器: 时钟控制寄存器(rcc_cr) 时钟配置寄存器(rcc_cfgr) 时钟中断寄存器 (rcc_cir) apb2外设复位寄存器 (rcc_apb2rstr) apb1外设复位寄存器 (rcc_apb1rstr) ahb外设时钟使能寄存器 (rcc_ahbenr) apb2外设时钟使能寄存器(rcc_apb2enr) apb1外设时钟使能寄存器(rcc_apb1enr) 备份域控制寄存器 (rcc_bdcr) 控制/状态寄存器 (rcc_csr) 具体配置请参考stm32的数据手册

7,STM32F1测量时间间距最短能测量到多少呢

先抛开技术,针对这个应用,我个人的分析如下:由于外部波形周期不确定!若采用楼主的测量方法,那定时器的时钟分频要设置得尽量小,这样才能较准确的测量高频率波形的周期。这样设置导致定时器的溢出周期很短,碰到频率较小/周期长的波形,定时器溢出较频繁。如果使能了定时器溢出中断,那定时器溢出中断会较多的占用CPU,而导致其他应用程序运行变慢或者无法运行(一直在打中断)。所以这种软件设计方法是有一定局限性的。我个人的想法是,将测量的波形周期尽量控制在一个定时器溢出周期内,即波形两次上升沿都落在定时器溢出周期内。。。(具体描述见下帖,担心字数超限,呵呵)。。。
多谢大侠啊, 看了大侠的若干帖子,对重复性周期性信号而言,确实是解决的好办法。但我这个设计还有需要在这个帖子里没有说明,那就是需要在非周期的情况下亦能应用。也就是说,在第一次触发前的等待时间是个未知数。如果进入中断清零,那么这时候导致了误差----中断响应时间,还有指令处理时间。也就是还是要将中断的时间压缩,但目前似乎没好办法。。。
我明白了.lz是被stm32牛逼的捕获模式误导了.你想想单片机,没有捕获模式的时候怎么测频率?首先,你要分情况,高频/低频对于低频,你就直接数量个上升沿内计数器捕获了几个变化,f = 1/t;对于高频,你就不要用捕获了.换成计数模式.在1ms内,看计数器记录了n个周期..f=nKHz,单片机只能用此种方法.
多谢大侠! 1,定时器为通用定时器,有DMA通道。 2,我这个里面涉及到三种跳转到中断的时间。两次为上升沿捕获,中间还有若干的计数器溢出次数统计的操作。两次上升沿捕获可以采用DMA方式,但定时器溢出中断次数的统计不知道能不能用DMA呢?我对DMA不怎么懂,多谢啊! 3,低频没问题,就是想把频率尽量做高,目前只能测量500KHZ。。。。。
1.看看你用的定时器有没有DMA通道,要有就直接开个缓冲区,把采集到的数据写到里面。然后等DMA中断后进行批量数据的分析。2.中断获取连续几个周期的数据,写到数据缓冲区,等缓冲区满,关掉中断,进行数据分析。如果你怀疑是中断处理时间长,你可以单独获取一个周期的数据,看看是否正确,如果单独获取一个周期都有问题,只能说,外部频率太高了,用这种中断的方式搞不定了。优选第一种!看到你外部测量的频率有点高,如果长期开着中断,CPU一直在打中断,其他功能就没法完了。
PWM输入模式 这个就是解决测量信号周期的,,你看下用户手册,,给你截个图

文章TAG:stm32定时器捕获能到多少kstm32  定时  定时器  
下一篇