我正在尝试测量PWM信号占空比。我努力在STM32CubeMX中进行所有配置,并且我正在使用STM32F407G-Disc1发现板。
我已经配置了一个计时器来生成PWM信号,另一个计时器来捕获它。
下面的TIM2用于产生周期时间(T)为20ms且Ton = 1ms的PWM信号。
TIM3配置为PWM输入捕捉模式。目前,我怀疑配置是否正确。您能先验证一下吗?
然后,我将电线从PA0 (TIM2_CH1)
连接到PA6 (TIM3_CH1)
,并且还连接了一个LED,以可视方式验证信号。还要用示波器检查-pwm正确生成。
下一步是使用DMA请求捕获测量值。
自动生成的main.c
uint32_t pwm[1] = {0};
// ...
if(HAL_TIM_IC_Start_DMA(&htim3, TIM_CHANNEL_1, pwm, 1) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
稍后进行调试将显示pwm[0]
等于20000
的内容,这是正确的。
如何测量周期的Ton(信号为逻辑1时)?
我也尝试过为TIM3的通道2启用DMA请求,但最终以_Error_Handler()
结尾。
谢谢!