嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
) J$ s7 U0 d' Y0 _% y: W9 X9 K经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
2 h  ^" j/ F* l# ^$ A* g- j1 O; q( S2 M
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite). _+ x7 E* t# k& z
{3 T# G' p4 @. A) K5 x
     unsigned int count = 0;
# Z# v( x2 |1 y! W2 T4 \! _     unsigned int flag = 0;
! f# L' ^, H* M) y$ _3 @) q6 c  v: `* {9 l0 Z
     if(numBytesToWrite < 0)6 F, O, r4 R( e4 U) {
     {1 Y7 _9 Z8 C# B5 h6 w, ^  l
          flag = 1;
7 s7 S* v- {: L     }
$ g0 D! z3 i% t1 X
1 K  J( _$ x9 G9 }" r& Z/ C0 \     while('\0' != *pTxBuffer)
2 s1 _4 @+ v$ q4 @& t     {
) a6 d+ x& G, u! {+ m! D          if('\n' == *pTxBuffer)' G* X2 N) q9 x4 G/ L/ j; m
          {
; q3 ^1 ~* Q$ ~/ g; ^- o  B9 _                   UARTCharPut(SOC_UART_2_REGS, '\r');+ e6 B$ r/ `  b$ R3 A3 l  S
                   UARTCharPut(SOC_UART_2_REGS, '\n');4 V! c2 ?3 @8 r/ G( b
          }
/ Q; d" d: N( [  p          else: D4 r# B4 B, F9 n7 W
          {1 g- T+ T4 M- n2 x0 a
                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
- M0 S& Z$ B! G& F. a( U9 A# V          }
* M' k, @. [+ O# I2 m1 ^" ^$ x          pTxBuffer++;
4 v  W. f- f: J          count++;
: k0 A4 K+ s' ~5 _
  ?( {6 }9 A  x; E- x          if((0 == flag) && (count == numBytesToWrite))
5 ^. g4 ?& n7 r- u          {( W* Q* i9 w0 y, d. {( x9 |( `
               break;# {& [% `+ }* F& d
          }  G7 {6 e1 Y) M0 U3 ]0 v2 F' ^% R

: Q( c) H+ {6 [* I2 b" ^5 b! Z     }6 T1 |1 l9 ?/ Q* N. L
7 N0 p4 ^9 ^* Z+ h( F& \% N6 Q
   return count;' c7 F0 h) o% J& N5 t
}
8 E+ q( e- t" n9 N* E$ X7 q& _1 m9 f7 `" D8 W

作者: human    时间: 2017-3-21 22:00
没有出现这样的问题' z; a/ h4 v, C
看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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