EDA365电子工程师网
标题:
【求助】STLink 仿真显示comm timeout
[打印本页]
作者:
frlop
时间:
2016-7-1 16:14
标题:
【求助】STLink 仿真显示comm timeout
STM8903 三相电机驱动程序。
, G1 m7 p7 ?% E
发现如果程序里有对PB端口读操作 STlink就好显示error显示如下:
6 ?# O2 Y* C3 T1 b
捕获.PNG
(377.87 KB, 下载次数: 0)
下载附件
保存到相册
2016-7-1 16:13 上传
! s; K; V/ V+ E
更准确的说是一旦PB端口PB7为1时读操作就会引发Error。
# R+ ]1 S$ h4 `* @9 j. |
PB端口5,6,7接Hall Sensor,电平为5V/0V电平无异常。当把电机转到100,101,110三个位置时,就会显示一时错误,无法进行仿真。
% U4 k" |) F6 ^, Q* N9 I
其他状态目前没有发现问题,如果屏蔽这段程序则仿真正常。
, _; ~5 s; i- A+ `1 K2 L$ b/ g* j
void Hall_GetStep(void)
2 N/ M$ E0 O8 X8 ]6 A3 w
{
' M) }: b8 N# K. L
u8 hallCode;
( Y: ~0 E" R( a0 T/ a/ ?
e' o8 x. Z( w8 N9 c& e
hallCode = GPIO_ReadInputData(HALL_PORT);
8 e; E; J4 W2 w9 r: K. }
hallCode = (hallCode & 0xE0)>>5;
* i8 [4 I" x- n. K; U- ^# U
w8 T* O( m! B( Y S
MotorControler.Hall_Code = hallCode;
, S) E) C7 p8 E5 l
9 P; U8 B! k; P( l; U8 w( I
switch (MotorControler.Hall_Code)
/ d- p& ^+ S& v& }( n9 R
{
* q3 x) _6 P# V* x+ }
case 0x01: MotorControler.Hall_Step = 0; break;
1 g/ A. s4 N2 i d% H- D$ j7 w
case 0x03: MotorControler.Hall_Step = 5; break;
6 ]5 y a- l9 J" W1 Z, f, A
case 0x02: MotorControler.Hall_Step = 4; break;
( N5 [9 f7 f* Z/ x/ I
case 0x06: MotorControler.Hall_Step = 3; break;
4 O2 h8 Y, L( P5 r8 ?+ w0 {$ ^( f
case 0x04: MotorControler.Hall_Step = 2; break;
. o. U3 P( U( t7 @: I8 I( S2 l
case 0x05: MotorControler.Hall_Step = 1; break;
* Y% i! g+ `$ o6 t0 V. `
default: MotorControler.Hall_Step = HALL_CODE_ERROR; break;
8 f& [+ @% d: R$ S
}
; k) [5 y) J/ h, G' n
}
$ K& W& e+ K7 n! y
已经更换过一次MCU问题还在,请教有没有大虾遇到过这个问题,或者有解决思路,帮忙指点一下。
( [( Q0 m: a9 ~1 F) N
拜谢。
5 R2 W+ g) N! d: S6 n( z) S: m
0 M* H2 V' S: @/ }. E- U; C
欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/)
Powered by Discuz! X3.2