嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
8 y# J8 G5 u0 \, g经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。9 \& i! z4 J8 O3 t/ K
  [( V8 V& e1 H* k3 O( D) G" |
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)' ]. R% }4 X5 K; f5 Z
{7 ?* U! V, Q- D1 T) J
     unsigned int count = 0;& f# H  v2 j) z8 h7 T! C8 i
     unsigned int flag = 0;# {( D8 ~0 R  E# {5 h1 g! f) U

2 ?9 b+ m2 W8 Z* A7 h6 z     if(numBytesToWrite < 0)
0 `+ |/ `: G; A6 {! v     {
- h7 ~$ u* u$ x7 x/ d          flag = 1;  }. ]4 I. c6 U: X: c9 r# c
     }( {, Y' _  }* R

% c/ H! K- }1 x. A2 Z     while('\0' != *pTxBuffer)5 L& ]& }4 w+ }9 P: u2 ^
     {4 p3 P+ _, ^# @  c" i( O
          if('\n' == *pTxBuffer)
# l, T  u( v! j) s          {' E& r( ?' l' O. g: e0 \
                   UARTCharPut(SOC_UART_2_REGS, '\r');- A5 v5 a! ?9 N( Z( w; K; M
                   UARTCharPut(SOC_UART_2_REGS, '\n');; g8 V4 x+ `$ }; k, F; ^: d! F
          }
! D# i9 b+ V! r# i          else
+ A- C" ^. W( E/ X+ U. }          {# |3 d/ |! Y" _0 p0 r; x  F
                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);4 ~2 s7 G0 G* D9 k: U  |6 u" [
          }
% R' p4 J7 `( w+ L$ t          pTxBuffer++;% T$ G" n3 L4 P5 @& ]" s
          count++;
' \6 w; E. g9 n, y+ M' J8 O+ P) H2 [' S# B) p6 u
          if((0 == flag) && (count == numBytesToWrite))- M) U9 o, R: _! D7 l/ K! D
          {; m6 _: b7 p! d
               break;
6 g, M! Y0 A7 Z' w" w# `' H          }
( z: h! f3 t! ]; t9 |" Q
6 }: c' t/ u. y4 j     }
! Z2 B. `8 R8 f, _/ V5 {! w% E' Q
! s; M4 B1 P+ j; }   return count;1 X1 g8 a; u' R$ P0 t+ a; {& `
}
; a8 ~0 C" r- H+ m, n  T
2 D' C0 F  J, M% o  s
作者: human    时间: 2017-3-21 22:00
没有出现这样的问题; ?8 H  I" @: K, M4 s0 @6 P
看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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