|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STM8903 三相电机驱动程序。
9 Q& Z; g8 g$ H4 o发现如果程序里有对PB端口读操作 STlink就好显示error显示如下:
6 a- B: `# a f4 [1 G
% d% n& p6 t1 v5 \7 X更准确的说是一旦PB端口PB7为1时读操作就会引发Error。
, S6 [2 P; p6 U: ?% \* }PB端口5,6,7接Hall Sensor,电平为5V/0V电平无异常。当把电机转到100,101,110三个位置时,就会显示一时错误,无法进行仿真。
# r7 j) }" A$ u5 g其他状态目前没有发现问题,如果屏蔽这段程序则仿真正常。
. H/ Y/ o$ x: b" cvoid Hall_GetStep(void)
: h+ E1 g) i2 c{
' ~2 W% A" U) P7 |- J6 [ u8 hallCode;
2 ^2 D0 V) ]3 K! L9 d& q 8 o- e- b5 t8 h+ H, { }& K
hallCode = GPIO_ReadInputData(HALL_PORT);9 A! H4 C) S4 o
hallCode = (hallCode & 0xE0)>>5;
* I( C7 |6 F( B. T, s& f % Y8 y' E. D; L, n
MotorControler.Hall_Code = hallCode;
; M5 `4 O, _0 K. s! }
; l1 c; E5 P3 S) Q: L, @ switch (MotorControler.Hall_Code)
# q. y G* v- F2 k. j {4 L' w- d. h+ \3 p# P; t1 i
case 0x01: MotorControler.Hall_Step = 0; break;! w8 O$ i( ]' V2 Z! B
case 0x03: MotorControler.Hall_Step = 5; break;1 A7 A4 [) c7 r# s% a1 t- L* ]) b
case 0x02: MotorControler.Hall_Step = 4; break;
- [: X, N/ i. i y: h: u case 0x06: MotorControler.Hall_Step = 3; break;2 a, a# f3 M* n" H2 h- k5 q
case 0x04: MotorControler.Hall_Step = 2; break;! w6 p" |7 J q% i$ V
case 0x05: MotorControler.Hall_Step = 1; break; ' {( s( i1 o# ~% R! B( t) {1 m2 A4 h" x
default: MotorControler.Hall_Step = HALL_CODE_ERROR; break;8 I9 z% w1 Q g, |4 I! l& {
}% r; f& j- v& s# l
} 9 r& e( L& E6 i, X- q: W/ Z8 o0 Q4 l
已经更换过一次mcu问题还在,请教有没有大虾遇到过这个问题,或者有解决思路,帮忙指点一下。
& t" h' `. Z9 y$ F4 m; a拜谢。! e$ j3 Q* _) y# u, D: H' y5 p ~
5 }7 h$ v) I7 y/ {
|
|