标题: 光盘UART2_INT例程 [打印本页] 作者: 51DSP2016 时间: 2017-3-21 19:11 标题: 光盘UART2_INT例程 使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。8 T& h; F ]" D8 L6 D3 Y. v2 E2 _
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。 2 \6 I& m) T9 X/ g7 E4 u, M( P ; m2 r) t, p7 S0 h' I. J* Runsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)# k7 k) H! m) b4 Q0 d: f' P7 E+ u
{ * w+ ~- @& s9 s) S3 Z unsigned int count = 0; * D# K6 a! x% Y1 O" ^+ e unsigned int flag = 0; . L |# @) h: Q" W# u& Y, Y& Y8 m u, g' A# B8 y# P( l
if(numBytesToWrite < 0) Q) @0 Q6 r6 e' H$ ?. j { - j6 K* t( R$ O: h flag = 1;6 V* ]% Z" C! C; _! N0 w
}2 l" i2 y) r+ p6 z! ^0 g- N
$ x* d9 n$ B' Y! d% z/ L2 K9 S" w
while('\0' != *pTxBuffer) , ]/ _. C. Q3 K {1 I1 S" x" m* H* m3 F
if('\n' == *pTxBuffer) ) X2 h: D. l( o# V {) [* b7 N5 `1 z
UARTCharPut(SOC_UART_2_REGS, '\r');, O4 k) }/ l* r. B0 q5 i7 d O
UARTCharPut(SOC_UART_2_REGS, '\n');& q5 h. ?9 V0 ? V2 V7 G
}+ U7 y6 b2 s/ J
else' e# z$ e+ l. h
{ ( Y5 T+ L. k1 X9 {' S' n UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);% @) G+ `. U. J: Z. Z
} 6 |. a: S; y0 C; \$ l$ } pTxBuffer++;+ F4 K& [* i9 F8 O) U! y
count++; Y. _/ Z7 S4 d! [2 C$ ?
! S) q9 N0 t; Y. ]& x, ^: ]4 N
if((0 == flag) && (count == numBytesToWrite))3 ]4 i* E. H" }* J4 J
{ / }3 v u7 l; b( F break; 0 I3 ?; U; _ ]' g E5 P5 K, l }" k2 F1 z4 Z' Z C, n! |' y9 n
. T# a% X7 c/ d' d. u, F } - a, D L. _4 p# c' f" `& d2 v( P) T' L2 P' ?0 \' P
return count; e* W, b. r$ M5 ^" E" s3 J! t
} ; R+ n. X: B4 q! P6 }6 \3 E* | 1 I4 w R+ p ]3 }- W$ @8 W作者: human 时间: 2017-3-21 22:00
没有出现这样的问题; B$ |3 z& N. G: l( z
看看是不是debug模式作者: 希望缄默 时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设