|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STM8903 三相电机驱动程序。2 y$ ^8 |+ o1 ^! t# I
发现如果程序里有对PB端口读操作 STlink就好显示error显示如下:- X8 c) e0 Y9 K- a7 [
" ~, @( b4 p" Q, p7 ^( ^更准确的说是一旦PB端口PB7为1时读操作就会引发Error。% l4 n/ h; c% n3 z
PB端口5,6,7接Hall Sensor,电平为5V/0V电平无异常。当把电机转到100,101,110三个位置时,就会显示一时错误,无法进行仿真。( U* K- V5 c3 k7 t$ n# R9 w
其他状态目前没有发现问题,如果屏蔽这段程序则仿真正常。
5 B e. u( w) n; ]void Hall_GetStep(void)
; R9 L' T `- {6 a{6 ]. A" S& A0 Z, y
u8 hallCode;
- p8 v0 B' F! C7 b a9 l , K5 Y2 L+ }! U9 V2 ^# _
hallCode = GPIO_ReadInputData(HALL_PORT);+ K# o- Q: S6 B) ^; w
hallCode = (hallCode & 0xE0)>>5;
' q+ c' T0 c: h1 } / Z4 C" Y1 s7 R/ D# J' b
MotorControler.Hall_Code = hallCode;
1 H3 k/ u% l+ K b R3 T
/ Z# q: ^! I9 K4 S2 x switch (MotorControler.Hall_Code)% T9 a% H. d9 z/ T) c! s# r
{
/ _# d; f0 z4 V. Q4 r4 r1 c7 K& v case 0x01: MotorControler.Hall_Step = 0; break;
$ b( d3 i7 c* B8 ~$ b+ c case 0x03: MotorControler.Hall_Step = 5; break;
- c, R# D- f F. Q3 Y. X case 0x02: MotorControler.Hall_Step = 4; break;
+ p/ R7 Q9 T8 { j case 0x06: MotorControler.Hall_Step = 3; break;
& Z) M/ |* _! M" k2 S, x; m8 V9 f case 0x04: MotorControler.Hall_Step = 2; break;
" l# ]" |) G6 V, `3 v: K$ { case 0x05: MotorControler.Hall_Step = 1; break;
7 v: T4 z8 R% f7 B1 j v5 U; |/ N default: MotorControler.Hall_Step = HALL_CODE_ERROR; break;
a" E1 N* f# r- f }
) @* S4 F( I, G. s3 y}
# r' c S; E5 g _9 H已经更换过一次mcu问题还在,请教有没有大虾遇到过这个问题,或者有解决思路,帮忙指点一下。
) H' u Y% O8 v T7 ~& }拜谢。% r+ H4 A, H3 F0 t3 p
. [& F d- r/ |+ f5 m/ v- k; ^
|
|