Можно ли измерить частоту входного аналогового сигнала в режиме захвата входных сигналов таймеров в STM32F4? Если нет, то какая альтернатива? Заранее спасибо.
Похоже, вы пытаетесь построить счетчик частоты . Вы можете получить такое устройство с модулем таймера в микроконтроллере. Имейте в виду, что у него будут некоторые ограничения с точки зрения скорости приема сигнала.
Вам нужно будет сначала подготовить входной сигнал. Чтобы узнать, что требуется, мне сначала нужно узнать немного больше о вашем сигнале, но я предполагаю, что вы пытаетесь измерить частоту чего-то, что в основном представляет собой синусоидальную / прямоугольную волну, возможно, с некоторым смещением постоянного тока. Нам нужно перейти от этого общего аналогового сигнала к цифровой прямоугольной волне, которая представляет те же фронты. Мы можем сделать это со следующей схемой компаратора:
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Настройте свой микроконтроллер так, чтобы он считал до тех пор, пока не увидит нарастающий фронт на выходе компаратора. Максимально увеличьте частоту таймера, чтобы получить требуемое частотное разрешение. Вы также захотите запустить прерывание по событию захвата, чтобы вы могли что-то сделать с новыми данными.
Когда сработает прерывание, возьмите значение в регистре захвата и вычислите частоту сигнала следующим образом:
Затем вы можете захотеть усреднить несколько из этих показаний.
Турбо Дж