ST MC SDK 5.0 生成工程文件中定时器Deadtime BUG
以前用的4.2的库,更新5.0后发现电机运行时驱动管发热严重,调试发现定时器deadtime设置为0,从而发现自动生成的代码中有bug. 我使用的硬件平台是Nucleo F446RE,编译用的TRUESTDUIOK。main.c 文件MX_TIM1_Init()函数中关于Deadtime代码如下:
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_ENABLE;
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_ENABLE;
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_1;
sBreakDeadTimeConfig.DeadTime =0;
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_LOW;
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
我的修改方法是main.c中包含头文件parameters_conversion.h
sBreakDeadTimeConfig.DeadTime =0; 改为 sBreakDeadTimeConfig.DeadTime =DEAD_TIME_COUNTS;
更改后可以正常运行,但每次通过ST MC workbench生成代码都要从新修改一次,希望ST能尽快修正BUG。
应该改为sBreakDeadTimeConfig.DeadTime =DEAD_TIME_COUNTS/2; 这个软件生成的程序从哪里开始学习比较好,谢谢
页:
[1]