|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STM8903 三相电机驱动程序。( M; V! l! P/ b$ b9 u
发现如果程序里有对PB端口读操作 STlink就好显示error显示如下:! S W/ K7 V: Z
3 w7 j# e, @9 \, k H* u' j更准确的说是一旦PB端口PB7为1时读操作就会引发Error。
2 z0 F: T6 r3 `PB端口5,6,7接Hall Sensor,电平为5V/0V电平无异常。当把电机转到100,101,110三个位置时,就会显示一时错误,无法进行仿真。
5 z' ]" y% k* y2 B) l6 v其他状态目前没有发现问题,如果屏蔽这段程序则仿真正常。
- I/ h) e ^$ W; a; `+ p9 qvoid Hall_GetStep(void)
5 D- O3 P, N" o. W I& L{* U3 j4 a* O1 E
u8 hallCode;
/ d* \" G9 O2 n" |) J& g
- K. n% C" O9 ~7 {8 N hallCode = GPIO_ReadInputData(HALL_PORT);; ^! ~) J5 m, y, b8 s, D3 h* Q
hallCode = (hallCode & 0xE0)>>5;
7 Y" p! h4 m A$ L ^! R4 I* l1 ?
MotorControler.Hall_Code = hallCode;) E8 V X0 U0 a: J
' |/ d/ u0 l+ Q
switch (MotorControler.Hall_Code)
1 @# U' v( ^) n0 n' t {
% N6 Q9 T; E: K9 V: b0 Q$ s# |2 J case 0x01: MotorControler.Hall_Step = 0; break;$ y- o( B3 ~: x
case 0x03: MotorControler.Hall_Step = 5; break;3 f5 Q; M+ X* U; X
case 0x02: MotorControler.Hall_Step = 4; break;
, |$ j1 d w q* w$ Z; _9 d case 0x06: MotorControler.Hall_Step = 3; break;9 d# O2 D2 G9 h: j* b3 c
case 0x04: MotorControler.Hall_Step = 2; break;
y. R; K0 @* E# ?( |* R# O8 Y0 h# M$ D: r case 0x05: MotorControler.Hall_Step = 1; break; 8 V4 [2 X9 Y/ t- d
default: MotorControler.Hall_Step = HALL_CODE_ERROR; break;7 F& u& h+ `* u) u: ]. a
}
% x2 K$ u. ]9 @- H0 H3 `}
+ [0 \7 j# p4 _已经更换过一次MCU问题还在,请教有没有大虾遇到过这个问题,或者有解决思路,帮忙指点一下。 W* V3 t" p: ?
拜谢。
8 S1 u8 b- f, `/ E/ D8 W: O i9 t3 i2 Z! p3 l
|
|