嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。/ @0 e6 k& D& L8 \
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。' _' [! [/ v) c& q. O, z

0 C- @$ m8 M) ^' f3 B' c4 f2 xunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)# J9 W  V  h: P  ^- d- N6 C
{) a% z# X1 V5 W! P& ]# H0 k
     unsigned int count = 0;
$ V+ q/ A. [; D( e2 z+ L     unsigned int flag = 0;, h  n2 K% [( {2 a4 K7 I, V& o

4 a$ u$ k" D# c7 q$ U     if(numBytesToWrite < 0)$ t3 S5 j; n' L
     {
1 L8 g6 ~5 s3 g6 \! O          flag = 1;2 [4 l  r" p/ a: `* F; E" {- T
     }
+ p& e, a0 ]9 w  ]7 x# x
# t6 G1 \6 h" Y; p5 U) c5 S     while('\0' != *pTxBuffer)
) {+ C9 W0 D0 S& `# B; N) \     {
( ?2 J  S; g7 P, p( e$ P. y/ j          if('\n' == *pTxBuffer)
& J0 p5 s+ V. x& ?          {0 _6 M9 T5 R; \1 k8 z! u; v
                   UARTCharPut(SOC_UART_2_REGS, '\r');- F! J  ]- ]( T7 C  Z8 b) n: E
                   UARTCharPut(SOC_UART_2_REGS, '\n');
$ X) f+ x5 m2 ^2 Y/ `) ~          }
- V$ Y, U* E9 p          else
" a$ c4 @# c4 K  d8 k8 _6 ]          {# z2 K2 l1 Q5 e8 _( d8 O, M
                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);9 X3 f/ O! v. `
          }; |* x: e/ |) q6 k2 e2 H* i) n
          pTxBuffer++;1 f6 F4 r8 v! y
          count++;. g& U9 C0 B8 S& f
% \" h0 _2 n3 }
          if((0 == flag) && (count == numBytesToWrite))
4 M6 A# ?4 Z. V! G! z; B( Q          {
; B* D) K' g) X* E& b               break;
2 z) {' d" B" h! w3 r0 F          }
" ~% M0 s; [( n6 q! A7 q
. G; O$ ?1 v: ]. ^) p8 C( t4 E     }
5 y. H# ~0 b+ x* h0 c! q9 g5 Y) ~  f; T. k6 R1 V
   return count;
! O" ^: C. j2 U. ^}
3 c  i0 I5 ~6 X# M8 \) I4 Y7 B: Z9 M' V) C) g( B1 l6 Z4 X4 w

作者: human    时间: 2017-3-21 22:00
没有出现这样的问题1 ]8 D1 W% [/ j/ t: I
看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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