stm32定时器:启动并重置相同的触发器

时间:2018-03-05 06:26:01

标签: stm32

我有一个周期信号(22 kHz方形),连接到TIM3的IC1。我需要测量这个信号的持续时间 目前的实现是:
1. TIM2编程为单脉冲,arr =信号周期+小偏差,触发模式从机,CEN为主输出,触发INT启用。
2.在TIM2 ISR中,只做TIM2-> CNT = 0;
3. TIM3是门控模式下的从机定时器,连接到tim2。触发INT启用。
4.在TIM3 ISR中,只计算一个差分电流CNT和prev CNT来测量信号持续时间 这是有效的,但由于ISR呼叫和时间,时间不是100%准确。执行时间。
问题:
1.我可以使用相同的外部事件来启动和重置相同的计时器吗? 2.我可以在实现中使用输入捕获寄存器吗? 3.对我的任务有一些更好的想法?
我真的打破了我的大脑一天。请帮忙...... ;-)

1 个答案:

答案 0 :(得分:0)

@P__J__是正确的-您应该配置和使用输入捕捉模式,STM32上的许多定时器都为您提供了此功能。这样一来,在信号侧面被识别的那一刻,您将不需要任何ISR(软件),因为MCU会为您做到这一点。您只需要一些软件即可从Input Capture中读取测量结果,但是您可以或多或少地在ISR中进行操作或从主程序中进行轮询。

TIMx外围设备非常复杂。 因此,我建议看看 this Application Note from ST 以及 that one