嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。3 \8 H! y# a, i3 K* Q/ k) t7 {
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
% l; j' X) {7 W% O* f- h3 o  n, \# z7 T  A! V3 F1 c
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
/ D$ e/ N  D5 r{
' v1 D* U6 I% m4 l. W8 ?     unsigned int count = 0;
  }; J$ m5 G" m     unsigned int flag = 0;
9 h/ v; C" {  a
+ p# i$ ?& i7 k7 P     if(numBytesToWrite < 0)
6 B/ w" W4 C& z+ y     {/ A! y( H5 p1 |! R+ b) a
          flag = 1;" @6 Q8 u: j+ _& M/ O, x' c
     }
/ s' r5 K" G, r% D3 y* {  D+ I0 ?% ?8 q6 }6 g+ [, j! u
     while('\0' != *pTxBuffer)* Q: {5 v. x$ b0 l0 _
     {
# d& Q& ~. U6 U          if('\n' == *pTxBuffer)! U7 h3 j( K% U% O6 V. S; M4 Q
          {6 Q, p1 `6 e. f& j
                   UARTCharPut(SOC_UART_2_REGS, '\r');
  G( W3 v7 ]( t  [4 N                   UARTCharPut(SOC_UART_2_REGS, '\n');, j" N& S3 X) f$ J
          }! `' t* j, B, s( B& h! R0 m
          else) e0 L$ G, T8 l7 p4 O
          {
  L, T. @" A+ n; I! s( w' r                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);' [. `4 y: a: o5 J6 O9 d
          }
1 c( @# w4 u4 @0 w* V          pTxBuffer++;* J6 h$ n# M& G0 ]  l: X2 i
          count++;
9 Q$ {5 A0 X4 w* I- C% o; t% Y) P
* ~  W4 Y% ?, g) ?; v          if((0 == flag) && (count == numBytesToWrite))
# ]4 j& [3 y$ T' d! w% j          {, i! h9 q+ e4 n2 @$ R
               break;5 a, J" F# A% h% f: l
          }% P, z6 h) _: @/ B' e
2 c2 f( x$ i7 G5 m- \# `
     }, Z  _- |- S2 z  t; l7 i
; n% P1 U1 b! P6 L! f
   return count;
: Z% G, _) [0 @, z2 R}+ W" I3 {6 L. f# ]! K

  |/ L# B( @4 v/ M$ _; x* ^
作者: human    时间: 2017-3-21 22:00
没有出现这样的问题3 K3 f7 |1 Z  C: X. K4 X
看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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