嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
  k: g  M, E. Q+ M/ J8 _9 A经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。# Y; g% L1 ]/ R/ r3 x" U' Y
8 o' e3 l3 k) B0 ~
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)5 ^' a# F- ~1 C1 Q
{2 x" G* E6 F2 l1 f
     unsigned int count = 0;4 k, o, V2 J4 o; D6 x
     unsigned int flag = 0;
9 S8 J* j( }3 F) g$ P4 }$ r0 r% s6 V1 Z  i. i  \
     if(numBytesToWrite < 0)
; z' @  O8 q: K9 ?, e, n) X     {5 C! t+ @" A0 R
          flag = 1;' k8 k& @' n9 y; r, S/ v
     }7 K# o- @* }$ w: P4 \6 `9 ~. S
0 K* C0 e+ v1 j
     while('\0' != *pTxBuffer)& v8 `% K$ R1 W- g9 q& v+ H3 s. H- ~
     {' k% \, J- ^/ w: G0 {4 S" \
          if('\n' == *pTxBuffer)
4 m; l3 V+ v! W3 U* Q          {' C, E& m$ T1 J7 Y
                   UARTCharPut(SOC_UART_2_REGS, '\r');1 s' T8 J: A' m9 a" p
                   UARTCharPut(SOC_UART_2_REGS, '\n');
6 W  a( A) \$ B9 v/ J' B5 ?. u/ L          }2 O: T6 ]8 D+ [4 {- T% c
          else
8 ?& O* a" \6 o+ {% t, G          {
6 {& a/ [8 D; W$ u' j& ^% n3 |, C                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
1 w  h2 v1 I5 U7 s  m          }, [" U& O# p! y5 l
          pTxBuffer++;
+ d% N6 ^8 n" @! B7 R$ @7 G          count++;, H# K: w$ b: d: k8 A0 @, T' Q
$ Y4 l- d" {- B5 g0 y3 t
          if((0 == flag) && (count == numBytesToWrite))1 t8 M- @, W2 ^8 M
          {& {1 U% Q" l5 F, c6 o
               break;
( h5 `/ Q6 s* F: b2 }* t1 B, N          }. q1 @3 n( q5 W& w
5 u, i& x( t+ `/ ?4 G: n
     }; D& ?3 A! Q9 x2 ?
  p; H; k4 K& s3 |
   return count;
' v3 B' _0 V9 j. _8 Q" _: Y}3 H7 J2 b' ~: f7 l) Z
9 H/ d' D4 t% k, i7 f! B

作者: human    时间: 2017-3-21 22:00
没有出现这样的问题8 k: `) \8 Z* n! d5 |
看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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