嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
8 F$ h+ ]' ?3 ^% ?3 Y+ y经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
' o$ t6 |9 n3 m: P7 R
, J, j; C% ]: D/ w( R3 ]' wunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
1 L( G$ V/ V8 U7 S- j{
* s8 i1 J+ V& q; p. ?     unsigned int count = 0;) j  A8 r; ]; D, a2 K  s
     unsigned int flag = 0;9 ~" c( u5 w& f/ I% q6 l7 L
3 S, s- v1 h1 `% F0 Q$ n2 {
     if(numBytesToWrite < 0)% n# L1 L0 \. M8 q: ]$ u7 A
     {
, A3 x! Z5 ^# G' R          flag = 1;
( F# R% c( X) P- M     }
4 o; s; W$ G! m
7 C* D4 }' P  k     while('\0' != *pTxBuffer)
% _. Z: W! `- s# z3 o; [     {
3 u8 L  E  f% [. h          if('\n' == *pTxBuffer)
. \8 G* K, F# {/ _; z          {
" c- J7 J% D/ Z                   UARTCharPut(SOC_UART_2_REGS, '\r');
, N! |2 ~* {( f/ P: ^' `+ u                   UARTCharPut(SOC_UART_2_REGS, '\n');1 ]3 S# W" a7 x+ d9 j% M
          }
- W4 \4 R' J; t9 |  [          else
8 F+ z. x" e% e1 W1 B0 U          {6 \3 d; f+ o# f+ p$ H: X6 t" S% Q
                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
% K2 E# S- t4 L          }
+ x  _- v2 g7 V4 @# r% r  f6 m          pTxBuffer++;; y+ [1 c! j! f' x7 a5 f
          count++;5 E3 Y+ L/ g( o6 k5 t
) G, m3 s4 u2 H3 m0 t) }
          if((0 == flag) && (count == numBytesToWrite))
& f% c: o9 I: z/ k3 S          {
) X2 w) u2 ], B               break;# @/ y# {* a1 y9 Y2 p; L2 r. i
          }
( I, O6 p2 ^/ J. w; }" J& @1 T. g$ {  a
     }
( ^: q3 y3 u8 J5 u' v6 H  a0 w4 M2 b2 @$ H$ Z- V; ]
   return count;! L' F# o9 v6 K8 P7 i3 ^! k) z
}, @8 _. H3 I  s3 B+ G
6 \0 J: g0 p7 Z! b' k

作者: human    时间: 2017-3-21 22:00
没有出现这样的问题4 ]% T9 @2 _3 S1 m! B& A1 _3 R
看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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