各位亲: 我在5.4的库里面发现按键启动后,开始电机用的是 pMCI[M1] 这个结构体,如下 __weak bool MC_StartMotor1(void) { return MCI_StartMotor( pMCI[M1] ); } 但是,在电机底层执行的时候判断的却是 STM[M1] 这个结构体,如下 StateM1 = STM_GetState( &STM[M1] ); // STM[M1]->bState switch ( StateM1 ) { case IDLE_START: 看了很多遍都没发现是怎么将 pMCI[M1]->pSTM->bState 的 IDLE_START 传递给 STM[M1]->bState 的 哪位大哥哥帮小弟看看哈,感谢,感谢 |
使用IHM0003kit套件以及MCworkbench在生成代码时出现路径错误,具体的环境配置下面详细描述
mcsdk + stspin32f0 空心杯电机,同步电角度问题
MCSDK PROFILE 参数识别到28%停止
MC6.1.2,生成的应用为什么启动设置参数无效?
MCSDK 6.2.1 位置模式过冲
请问 MotorControl Workbench 5.4.8和哪个版本的STM32CubeMX可以配合使用?
关于MC Workbench DAC输出编码器PMSM电机电角度 。
ST电机库PWMC_SetPhaseVoltage函数中262144的作用是什么
E-L6258EX 芯片丝印的 生产日期 怎么看?
MCSDK霍尔和增量式多编码器同时配置,程序生成后存在一定问题
{
bool RetVal = STM_NextState( pHandle->pSTM, IDLE_START );
if ( RetVal == true )
{
pHandle->CommandState = MCI_COMMAND_NOT_ALREADY_EXECUTED;
}
return RetVal;
}
电机启动通过,改变状态机来进行的,bool RetVal = STM_NextState( pHandle->pSTM, IDLE_START );
状态机是在中频任务里固定频率调用的,可以查看文件mc_task.c 里面__weak void TSK_MediumFrequencyTaskM1(void) 这个函数,就清楚怎么回事了。
Hi 弗兰克: 谢谢你回答我的问题,中频任务里面我看到是判断这个
StateM1 = STM_GetState( &STM[M1] );
switch ( StateM1 ){case ...}
这里面的结构体是用STM[M1]这个名称去get电机状态的
而应用层那边MCI_StartMotor( pMCI[M1] )
这里面的结构体是用pMCI[M1]这个名称去set电机状态的
这两个名称不一样,是怎么传递过去的呢
已经找到位置了,感谢