用MotorControl Workbench把 Nucleo-IHM002调试转起来了,看了下工程里面的代码和CubeMX配置文件,还有好多不理解的地方,希望大家一起帮忙讨论下! 1、第一个就是ADC和PWM配置 TIM1里面 CH1-3为PWM输出,CH4用于产生同步信号触发ADC采样,但是CebeMX上面的ADC没有看到相关配置,而在程序里面有 sConfigInjected.ExternalTrigInjecConv = ADC_EXTERNALTRIGINJECCONV_T1_TRGO; 对于整个ADC和PWM的配置和工作过程,还不太熟悉,大家帮忙解答下哈! |
sConfigOC.OCMode = TIM_OCMODE_PWM2;
sConfigOC.Pulse = 1092;
if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
你这份代码不是工程默认生成的吧,我用workbench5.1.3生成的代码里面是这样子的
pulse的值应该是通过设置进行一系列计算所得的采样点
不是,是Workbench5.03和CubeMX配置生成的
换新版本吧,最新版本5.2.0,可以看到这个值的计算过程
sConfigOC.OCMode = TIM_OCMODE_TIMING;
sConfigOC.Pulse = 0; 也有=12,=25,=200, =VALUE等等,调节脉宽我们需要调节sConfigOC.Pulse
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;