嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
3 i8 G. r) @- n* h/ Z& O& W5 F经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。) Q0 l; \: O7 w7 K

0 S7 H) P( S; ?8 R2 g0 Nunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite). s# y( X2 T  o
{
- A6 A( Y- {3 Y/ v! R     unsigned int count = 0;7 N; B$ d# }5 P6 F3 r& o
     unsigned int flag = 0;2 v2 g/ S5 I+ k( M
" X1 F1 H, G/ q% {8 ]) v' k7 u  p
     if(numBytesToWrite < 0)
& a5 [% Z3 A7 U) s9 [     {: Q3 M1 g" \9 D: r: v0 x4 F
          flag = 1;! P! ?+ K3 m1 ?" ~; }6 Q
     }+ b' ?  U. `0 Y8 c
. f9 e9 f0 C) v; @
     while('\0' != *pTxBuffer)
7 M3 b- @7 k. q  _" B! b0 j     {/ |% Q, h3 x( Q" e; p3 L
          if('\n' == *pTxBuffer)" [! k6 Y/ O/ P- c! v4 r
          {& |$ k' \) A' o
                   UARTCharPut(SOC_UART_2_REGS, '\r');0 m6 l6 n- k1 h; M, ^' n0 Q* P
                   UARTCharPut(SOC_UART_2_REGS, '\n');0 E3 K6 I$ n! K& T1 n
          }2 `. P) Y; X  |* i6 b; f' b
          else6 \: L' _- a9 c( s1 T
          {
$ h6 w' \7 i( ~  S1 T/ f& }5 O# d                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
) n& V) g2 t5 B$ c          }; u2 Y; ?3 H% ]
          pTxBuffer++;; r, k' p1 @, t# U: b
          count++;/ Y" w" K4 D/ Z; I) O6 U. D: D2 h

; W+ X1 V0 X& l+ Q. u( @          if((0 == flag) && (count == numBytesToWrite))
$ r. }7 A: y6 f4 h* g1 }# y, D          {
# q+ M! l. U# [% m7 s% Y/ E               break;
6 d+ F- B! F$ R: Q/ X& k* D( Z- Q" m8 f          }- `; |* V$ z% f

: f( ]* P9 T6 C# q! E     }5 @% {9 n5 Q& ~$ Y
( F7 t% c1 A; u) I1 ]
   return count;, r, v, }' z* U8 J7 v0 z
}. t! s- E( R# e9 _+ z
; |; ]3 f0 b9 c2 e! k8 Z1 P

作者: human    时间: 2017-3-21 22:00
没有出现这样的问题0 h  W& f1 l4 D: E2 ~
看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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