嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
& S' T1 X& r* o+ x" _4 c# U经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。4 I; N' V% ]- m5 m' q% U  J
+ O5 F* l3 Y7 p6 }$ f" J5 O
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
& [9 ^+ m: V, ]/ U, u) Z8 q3 g{
# {+ ^8 C1 W& C0 G  o+ R/ Y9 f     unsigned int count = 0;
% U& r, e- l# F2 w4 b     unsigned int flag = 0;' t$ w* N0 c3 `& l# q9 z; G
4 p" P( E7 [: n) ~
     if(numBytesToWrite < 0)0 j( N/ l$ S2 @) q
     {
, {2 u, R% {' r  N3 _          flag = 1;
/ d- c: [' i! q, V     }3 n1 x. L$ W  D
7 E) p; @4 J- `0 ^
     while('\0' != *pTxBuffer)
5 j0 ^  t! h# N7 @+ H     {
3 a4 h8 ]5 D, G+ d9 j          if('\n' == *pTxBuffer)
$ [: }) t4 h" b8 j2 g" G          {
6 @0 w8 O/ X8 l3 P) Q( `8 n                   UARTCharPut(SOC_UART_2_REGS, '\r');
$ @9 e+ Z+ k! V" i7 k                   UARTCharPut(SOC_UART_2_REGS, '\n');3 L0 Q; M5 ]" z! A. T1 k# F
          }
% D1 e' Y5 A, s- [; ~          else
! z, S% }" R! l, r          {- c% Y; m6 z" q$ Z
                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);! h- Z. e7 L* ?- a% z
          }+ V1 A2 x! _" `5 A( i
          pTxBuffer++;3 X. P; [& i5 H+ G- G! c$ t# A- A
          count++;
& e3 U% T# [5 n; G7 }% P7 N$ g3 j" i& v
          if((0 == flag) && (count == numBytesToWrite))
4 `+ M* N4 i& g7 w$ {3 n          {0 S5 Q9 s  d' M, a2 X! a4 H
               break;3 V" I- H+ }/ F$ \
          }
: p' a; a5 v% @& p) a0 I
, M, R" k$ J3 x     }1 Q5 Q% w7 j5 ], G1 e

2 N) Y' N3 P- ^1 h9 L* t   return count;- q6 J7 ]; T( E( N* y! b
}
  l0 R$ U" e/ \6 `+ D: x8 x9 }+ @0 O, H. o

作者: human    时间: 2017-3-21 22:00
没有出现这样的问题
. a% Q$ z& Z6 ~7 q- s, A看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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