|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。 @- H2 J2 d+ L; p# V; I
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。0 F9 r; I! x- y2 G. Z
' I& [% \* P% l2 r5 U6 j" Funsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)' }: I' E2 h0 u% r% r
{/ u. M P4 C2 H5 ~
unsigned int count = 0;
4 t ^8 P! G2 `, l0 R& H unsigned int flag = 0;
( g! v# p$ ?/ c+ V& l8 \" J* h' I$ @) k. ~: o7 a4 g7 P1 p6 ~/ b
if(numBytesToWrite < 0)& {1 K9 t. h7 Y/ L! Z& X$ [7 R
{
" ~' l: Q( w3 R, M! U& W4 ? flag = 1;
1 H8 O- G2 S+ g X' }8 S( } }4 Z i+ {9 B# \( @
. Z1 t' u9 N1 w V5 v9 P; ?
while('\0' != *pTxBuffer)) T1 {' L R, D
{4 d) V' I0 L v) N+ y2 ?
if('\n' == *pTxBuffer)5 H: s, E3 f9 N- g! P2 ]- D, ?
{! Z3 i$ u W: M
UARTCharPut(SOC_UART_2_REGS, '\r');% D0 ] x# n( v7 r* t+ b
UARTCharPut(SOC_UART_2_REGS, '\n');
' m9 x. y, I! E& t; u7 z. w }- g6 _" W( f+ M+ |6 \1 K- T
else
* T3 Y1 B. m+ h0 A {9 e6 O5 U6 P% \ j4 c
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
5 S# }0 q7 Z2 `$ k7 k }
) y* u0 ]8 `3 e1 H pTxBuffer++;
& s" L' {2 Q4 K$ x. n: R: a' V count++;
% k7 s7 A' H; x. {% c
$ w# n+ s4 e# D. C0 M if((0 == flag) && (count == numBytesToWrite))
" G1 P/ Y! {2 a/ U" `% a {# v; o3 J8 e) w! m6 O. o& y+ {
break;
) Z2 `, R+ ]/ X% O }
8 C* s: |0 h* z a" _9 |: c; |( ]
B& ^, J9 s4 I. `* b& P! V9 U }- W# H" z5 l: |5 x
/ ^+ g; n& k# m0 w
return count;
3 T7 [, h. O5 b2 K3 q$ t( d9 d}$ e7 B) h0 y' w7 K/ F* i
: `( P+ ` F) X9 D* p
|
|