|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STM8903 三相电机驱动程序。( z5 R$ @* W/ x/ w% j
发现如果程序里有对PB端口读操作 STlink就好显示error显示如下:
" n/ c7 n# z* M/ z e
' i8 w% S; x5 s& ?/ |3 D) _1 B更准确的说是一旦PB端口PB7为1时读操作就会引发Error。# V, @& N& B+ M8 y
PB端口5,6,7接Hall Sensor,电平为5V/0V电平无异常。当把电机转到100,101,110三个位置时,就会显示一时错误,无法进行仿真。& z+ c4 ?7 z& a! D4 T
其他状态目前没有发现问题,如果屏蔽这段程序则仿真正常。
9 q6 t. [* }: c7 }void Hall_GetStep(void)
4 a$ o; R$ }- \8 J{
; o! U h. ^' v2 J2 w; _' A: A* ^ u8 hallCode;% c/ N+ P( q9 L) f6 F
3 D6 T+ c2 D' Z9 @, j! S6 E
hallCode = GPIO_ReadInputData(HALL_PORT);
- p F! V2 Q' _0 V2 i hallCode = (hallCode & 0xE0)>>5;; u9 v% Z2 \* j, a: F" R
1 ?6 |; n" Q2 a1 W7 H
MotorControler.Hall_Code = hallCode;
! @* U* g) O* R4 R : ?0 h. f" h6 I9 M2 _
switch (MotorControler.Hall_Code)
/ @2 K, H6 W# ` {& B8 K, O9 b, T! x) S
case 0x01: MotorControler.Hall_Step = 0; break;5 Z8 X$ {: C4 F* w) P$ R5 S, Y
case 0x03: MotorControler.Hall_Step = 5; break;$ @% }+ u% h0 @7 q0 H3 m l) J! f
case 0x02: MotorControler.Hall_Step = 4; break;
3 L/ @& ]8 _+ I1 u8 c case 0x06: MotorControler.Hall_Step = 3; break;
4 c' E& h! S' z m( E( p case 0x04: MotorControler.Hall_Step = 2; break;2 n- L! q3 \; s% ~( l% I& c
case 0x05: MotorControler.Hall_Step = 1; break;
7 g4 w+ F" j$ K1 e' Z: i; t* M default: MotorControler.Hall_Step = HALL_CODE_ERROR; break;
. ~7 D, {3 J0 L9 i2 L }) B A9 N+ C7 c% {) u7 b5 L
}
A$ P& O/ W7 E4 `已经更换过一次mcu问题还在,请教有没有大虾遇到过这个问题,或者有解决思路,帮忙指点一下。
, ~1 R9 y& e0 R: x拜谢。4 K/ [( c( f L0 H! p* y
& r+ h) B6 c* L* b( H/ d5 A
|
|