打印
[STM32L4]

如何使用比较器和计时器测量波的周期?

[复制链接]
238|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Treasure101|  楼主 | 2025-6-24 22:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用STM32L476,我知道COMP能够使用exti线21触发中断,并可沿着计时器测量连续上升沿或下降沿之间的时间。然而,看了些教程,还没明白如何用自己的代码实现。



使用特权

评论回复
沙发
xiaoqizi| | 2025-7-3 19:05 | 只看该作者
被测信号 → 比较器同相输入端(COMP+)参考电压 → 比较器反相输入端(COMP-)比较器输出 → 定时器输入捕获引脚

使用特权

评论回复
板凳
木木guainv| | 2025-7-3 21:28 | 只看该作者
对于交流信号:参考电压设置为信号中值电压
对于数字信号:参考电压设置为逻辑阈值

使用特权

评论回复
地板
Jiangxiaopi| | 2025-7-4 07:37 | 只看该作者
比较器的配置
// 以STM32G4为例
void COMP_Config(void)
{
  COMP_HandleTypeDef hcomp;

  hcomp.Instance = COMP1;
  hcomp.Init.InputPlus = COMP_INPUT_PLUS_IO1;       // PA1作为COMP+
  hcomp.Init.InputMinus = COMP_INPUT_MINUS_VREFINT; // 内部参考电压
  hcomp.Init.OutputPol = COMP_OUTPUTPOL_NONINVERTED;
  hcomp.Init.Hysteresis = COMP_HYSTERESIS_HIGH;
  hcomp.Init.BlankingSrce = COMP_BLANKINGSRC_NONE;
  hcomp.Init.Mode = COMP_POWERMODE_HIGHSPEED;
  hcomp.Init.WindowMode = COMP_WINDOWMODE_DISABLE;

  HAL_COMP_Init(&hcomp);
  HAL_COMP_Start(&hcomp);
}

使用特权

评论回复
5
荣陶陶| | 2025-7-4 09:57 | 只看该作者
使用定时器预分频要根据信号频率调整

使用特权

评论回复
6
Zhiniaocun| | 2025-7-4 12:15 | 只看该作者
可以多次测量取平均,这也可以提高精度

使用特权

评论回复
7
Zhiniaocun| | 2025-7-4 12:15 | 只看该作者
可以多次测量取平均,这也可以提高精度

使用特权

评论回复
8
Zuocidian| | 2025-7-4 14:30 | 只看该作者
可以实时查看指定内存区域,监测栈使用情况

使用特权

评论回复
9
Puchou| | 2025-7-4 16:53 | 只看该作者
// 配置TIM2通道1为输入捕获
void TIM_Config(void)
{
  TIM_HandleTypeDef htim;

  htim.Instance = TIM2;
  htim.Init.Prescaler = 0;
  htim.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim.Init.Period = 0xFFFF;
  htim.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;

  HAL_TIM_IC_Init(&htim);

  TIM_IC_InitTypeDef sConfigIC;
  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
  sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
  sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
  sConfigIC.ICFilter = 0;

  HAL_TIM_IC_ConfigChannel(&htim, &sConfigIC, TIM_CHANNEL_1);
  HAL_TIM_IC_Start_IT(&htim, TIM_CHANNEL_1);
}

使用特权

评论回复
10
Xiashiqi| | 2025-7-4 19:08 | 只看该作者
测量正弦波的时候,设置比较器参考电压为0V,测量两个上升沿之间的时间

使用特权

评论回复
11
小海师| | 2025-7-4 21:21 | 只看该作者
不同的波形要选用不同的测量方法

使用特权

评论回复
12
Haizangwang| | 2025-7-5 08:03 | 只看该作者
比较器延迟时间的典型值是50-100ns

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

29

帖子

0

粉丝