嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
' o- Y5 w0 S0 U; A0 C经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。9 D. i% B" r$ L% g' x
- X# S. z$ K* k3 j
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
6 d1 n# D$ w% k0 K+ d3 l' v{2 t3 D2 N, b/ T
     unsigned int count = 0;
' G, n/ M( A. ?     unsigned int flag = 0;3 V; {5 B8 \7 p" n1 d% Q
5 s* f0 p+ w! w( P1 V. M& k# a& b
     if(numBytesToWrite < 0)
/ l/ ~: F. K; ]1 K4 T, F+ Q! j/ N+ T     {
6 O5 U( K5 ?& u) n- Z          flag = 1;
# l2 w" t8 @! B     }
0 K4 V" ?- D9 m7 }% l
+ @3 i/ o& k9 R     while('\0' != *pTxBuffer)
+ G* s6 t) l1 y" J     {
+ A# e  l; I2 _- m1 f) o          if('\n' == *pTxBuffer)$ i: S$ K# t( F, Q
          {
2 b% ?# A1 I6 h8 g6 X& V2 C                   UARTCharPut(SOC_UART_2_REGS, '\r');
: j5 T0 x! _. E% J* B* V                   UARTCharPut(SOC_UART_2_REGS, '\n');. c/ z. m1 t, T, H* _$ k
          }
5 n; ?' R; E" c) l; B' s5 n          else
; \7 c: R$ X6 Q          {, n5 O1 Z  t& m" o. ?: I
                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);4 c3 G* o. ^0 K  V" t
          }
+ w( K: X) t, G          pTxBuffer++;
1 ?% d0 Q* C0 l; K) {. P! l, E          count++;
. ]3 d/ u- z1 h* \4 o# R  W# i% U
" h; Z; ]+ R8 O7 A, O$ J          if((0 == flag) && (count == numBytesToWrite))3 m( \. I% O7 I: |( y
          {
5 q1 Y3 ^' b7 V% e               break;
1 m& q- K$ S  D: B  W' h( J          }: _: R" N% v) P* ^: c4 S% h# u

  f/ R' O& G+ L4 D/ H2 T     }# v8 i5 @. c9 L1 b! O

4 j* i" }! c/ G   return count;3 v7 b  @4 H# x4 {+ X/ R7 l9 P
}# q: o& Z+ D& B' y

! }" ]; r1 K1 j
作者: human    时间: 2017-3-21 22:00
没有出现这样的问题
: u; {; B9 m( u5 U! V看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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