我在STM32L496RET6开发项目,我想将 TIM3_CH3 → PB0 引脚配置为外部脉冲计数器。
目前无法为 TIM3 通道 3 设置时钟源
我已经将外部频率信号连接到 PB0 引脚,并且在示波器上能看到该引脚有频率输入。
当我把 TIM3_CH3 用作计数器时,无法选择 TI3即 TIM_CLOCKSOURCE_TI3和 TI3FP3 作为时钟源。
ST 官方提供的所有例程都只使用了定时器的通道 1 和通道 2,没有提到如何在通道 3 上实现这个功能。
当我把官方例程修改为通道 3 时,发现无法像 CH1/CH2 那样使用 TI2FP2 或 TI1FP1 这类配置。
通过软件调试测量频率时,读取不到任何数据。
这是我的 TIM3_CH3 初始化代码:
void Fn_Cnt3_Init(void)
{
Counter3.Instance = TIM3; // TIMx;
Counter3.Init.Period = 0xFFFF;
Counter3.Init.Prescaler = 0; //80;
Counter3.Init.ClockDivision = 0;
Counter3.Init.CounterMode = TIM_COUNTERMODE_UP;
Counter3.Init.RepetitionCounter = 0;
HAL_TIM_IC_Init(&Counter3); // if(HAL_TIM_IC_Init(&Counter2) != HAL_OK)
{
/* Initialization Error */
// Error_Handler();
}
C3ClockConfig.ClockFilter = 0;
C3ClockConfig.ClockPolarity = TIM_CLOCKPOLARITY_RISING;
C3ClockConfig.ClockPrescaler = TIM_CLOCKPRESCALER_DIV1;
C3ClockConfig.ClockSource = TIM_CLOCKSOURCE_TI1;
HAL_TIM_ConfigClockSource(&Counter3, &C3ClockConfig);
TIM3->CR1 |= TIM_CR1_ARPE;
TIM3->CR1 = 1;
HAL_TIM_Base_Start_IT(&Counter3);
// TIM2->CR1 |= TIM_CR1_CEN;
}
|
|