|
定时器输入捕获测量方波频率
🛠️ 3步实现方案: CubeMX配置:
TIM2 Channel1 → 输入捕获模式 上升沿触发,不分频(72MHz计数) 开启捕获中断
关键代码:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]c
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
volatile uint32_t period = 0;void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { static uint32_t last = 0; uint32_t now = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); period = now - last; // 计算周期 last = now;}// 获取频率(Hz)float get_freq() { return 72000000.0f / period; }
硬件连接: [backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]text
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
信号源 → 100Ω限流电阻 → PA0(TIM2_CH1) └── 并联1N4148二极管保护(负极接3.3V)
📊 实测精度: 输入频率 测量误差
1kHz±0.1Hz
100kHz±3Hz
|
|