|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
# ]1 R. e3 q- C; s5 p经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。# v+ G5 Y9 u) ]5 o0 B
: s4 C5 h# E# M; }5 |" i" Eunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
S4 ~( d7 Q9 }+ O: b{/ k5 M7 y5 J8 R" c0 ]& n
unsigned int count = 0;
6 L: B# ~( c" Y5 v4 L9 @ unsigned int flag = 0;
8 N3 a* x2 n7 A0 Z( M' B9 W: V9 _% T9 D- X7 r& m
if(numBytesToWrite < 0)
' [6 o( `$ I+ f8 e1 ?( O {/ d& e0 j4 i4 L! o
flag = 1;
9 g* l. v/ U2 u/ n9 ]' H/ _( F" [ }% \4 {9 K6 S1 g ~+ n4 k2 R7 v' t
) Z+ s$ A' S5 r6 P' \# e while('\0' != *pTxBuffer)
: C# f. B- G0 Z {
' l& i; E' a2 I: O if('\n' == *pTxBuffer)1 _) k4 M% j6 N
{; p1 a2 i. }9 v5 @
UARTCharPut(SOC_UART_2_REGS, '\r');
" d- y; ^3 j( W- t UARTCharPut(SOC_UART_2_REGS, '\n');
# z2 y$ S( a- L6 ~ }# ?. m' \7 `, O) x1 z
else% Q4 Y0 [! p5 B+ b
{+ Q& B% D$ D6 d8 w7 R0 h. }
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
4 t( c. V: s6 p }4 @: b/ H$ A- ?* j' `5 S9 H
pTxBuffer++;
7 a5 N1 l4 l9 B4 A7 Q* f count++;
. f! K( `" B3 t$ G# ~( m1 a
& r1 l9 Z' P0 U8 B- M' P if((0 == flag) && (count == numBytesToWrite))
/ m1 ^" R; d4 q u k {
9 e# a! O/ b- k, c! A; o- Z. Q1 S break;
2 x6 n) |: C6 K }
: A' U4 i, A8 v6 E! k( M, |0 F: l& U' s6 c A) @! v" }
}
! j4 X- k( @: N7 R i, G) p) b7 H; I4 G
return count;
5 {7 L# s1 G' s% r6 r# g* x2 l}
" o6 l9 V' l# ]8 @# h/ F' x5 l1 L9 {
|
|