
STM8903 三相电机驱动程序。 发现如果程序里有对PB端口读操作 STlink就好显示error显示如下: ![]() 更准确的说是一旦PB端口PB7为1时读操作就会引发Error。 PB端口5,6,7接Hall Sensor,电平为5V/0V电平无异常。当把电机转到100,101,110三个位置时,就会显示一时错误,无法进行仿真。 其他状态目前没有发现问题,如果屏蔽这段程序则仿真正常。 void Hall_GetStep(void) { u8 hallCode; hallCode = GPIO_ReadInputData(HALL_PORT); hallCode = (hallCode & 0xE0)>>5; MotorControler.Hall_Code = hallCode; switch (MotorControler.Hall_Code) { case 0x01: MotorControler.Hall_Step = 0; break; case 0x03: MotorControler.Hall_Step = 5; break; case 0x02: MotorControler.Hall_Step = 4; break; case 0x06: MotorControler.Hall_Step = 3; break; case 0x04: MotorControler.Hall_Step = 2; break; case 0x05: MotorControler.Hall_Step = 1; break; default: MotorControler.Hall_Step = HALL_CODE_ERROR; break; } } 已经更换过一次MCU问题还在,请教有没有大虾遇到过这个问题,或者有解决思路,帮忙指点一下。 拜谢。 |
这个是有优先级的 |