嵌入式开发者社区

标题: 光盘UART2_INT例程 [打印本页]

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。0 I  g9 w& d! W. y
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
3 L4 P' r( C1 S! D% g
2 h! ~* F7 A% t& Iunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
( x# K/ K9 ^+ v{
0 b+ l: {" Q' e     unsigned int count = 0;
7 W2 w7 t3 Q) _) A7 \     unsigned int flag = 0;9 [( ]$ ?) J- k$ `+ N
2 E+ l" B* P( l  o. f- i
     if(numBytesToWrite < 0)- B4 h" U( [% c6 n$ _7 E
     {, N# \; l5 r1 n0 T
          flag = 1;; ~! B7 c" ^) [( ?( M
     }+ S( z$ _1 {2 O. d3 ~

4 ]" q$ s  _* c9 ?# B: Y" o     while('\0' != *pTxBuffer)
! r& ]' z2 d# h/ ^3 e0 t9 J0 Y     {2 P7 q# D8 q9 r. i! m
          if('\n' == *pTxBuffer)
- M6 F5 `3 c, G% H          {: G* t  j7 b1 x5 t
                   UARTCharPut(SOC_UART_2_REGS, '\r');
1 t! a$ a8 r# ~6 B                   UARTCharPut(SOC_UART_2_REGS, '\n');
- c/ D1 f" d7 c# U          }
! `' Z/ R  P. N  j          else7 Y/ p) {5 ]6 g, J/ E5 J) @3 V
          {# ^) h0 P  [! N  d- D# i- \8 _. ]
                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
- \1 c1 d+ ?& [* C6 e          }
2 @# i: \  {, R  ^+ E: y          pTxBuffer++;
" E. ]2 ^4 D/ Z: i* u2 D+ M! l          count++;! P: U* {! _. u

' V4 I4 H; q9 C          if((0 == flag) && (count == numBytesToWrite))
" \* f! @6 T; O          {$ f% l* B1 X/ L& F& M* a
               break;6 }3 G1 c. _* r6 V$ @+ }# P
          }
; X3 s/ ]5 W/ v3 _; o  @8 Z
6 `. p) w" [5 u     }
3 Z0 z$ e6 L* b( g( D4 o* d; J
" f/ L2 {- O( z. `- g6 b) c' l   return count;5 X  d, P3 i9 ?
}
2 ~' y' K' `: }8 B+ ?3 u3 R! C6 }/ o% T" m1 L9 H

作者: human    时间: 2017-3-21 22:00
没有出现这样的问题
2 Z7 T$ V+ p' Y  N看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4