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
! 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* jvoid 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