嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
, j! k. I' X) R1 K) C: V1 a经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。( `& g' J5 Q2 g
# D. ^) q. z( W$ ?% E$ I1 _
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)9 H' ?: U( M! d) c( i. X& X
{, {; ]+ m! X, t/ \0 H/ V0 J/ ?
     unsigned int count = 0;* F, M7 n. c. X' h# Z
     unsigned int flag = 0;
( }9 v/ d0 h& ]' |( v
1 R4 T2 }1 C1 C, D$ G0 M     if(numBytesToWrite < 0)6 }5 z! y. B% o4 T) f7 [
     {
$ v" P5 h! F" l% _! i6 N          flag = 1;) ^0 q: Z* e3 ?% `
     }; A  K6 M* |- y- c+ @9 u( v
  O9 C  U! {. ]
     while('\0' != *pTxBuffer)4 `! Q$ D  `* N6 f. P5 s/ ?
     {# t% Q# |; H- D) [
          if('\n' == *pTxBuffer)
, G) c: R- C1 ~' C, j- Q" Z          {2 z+ E* i  U3 k
                   UARTCharPut(SOC_UART_2_REGS, '\r');
: r6 L8 O! J' p0 t% m: x                   UARTCharPut(SOC_UART_2_REGS, '\n');
+ W9 Q; r% O7 [" L6 O- l          }  M" Z  V3 t" }4 @3 p5 N" D
          else
. V; u7 M6 O5 y& w: o  F          {
2 i4 \, d$ ]5 t3 T                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);7 ^' x+ ~' r( v; p* ~1 R2 J
          }0 |3 o5 Z" x. h( r6 U2 K, ~
          pTxBuffer++;
) Q9 N  r/ b$ C, e5 A! M          count++;
0 b% ^( L* @* W' Z4 F+ N2 }/ F+ j
          if((0 == flag) && (count == numBytesToWrite)). W6 }9 ~9 G8 X3 T# U% [" [
          {, h9 _+ R9 S* ~! `. _
               break;
$ G+ L5 ?2 q$ R. ?& E3 ]          }( z  v+ S5 Y+ v1 r% ]$ H4 v
' {) R$ ~; ^9 h  o8 |: i+ m
     }
, O: t7 N$ F1 f5 T5 o: V" v0 X: \
   return count;
$ k, X) D+ ]# n, z. v}
* y2 S  J% ~; {9 [
+ _0 x* c0 V. N2 n6 l; W/ u6 D' N
作者: human    时间: 2017-3-21 22:00
没有出现这样的问题
- a6 T! }& s! V& M. b& W/ e1 l( R看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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