嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。; Q0 D' Y& ^* ?+ v! g
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。1 t5 n- X( s1 L: ^/ W! ]

3 ^' L! k% Z  l, H9 a+ @$ G% eunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
! W) I5 P- X/ j5 c{4 x* |7 h+ F' ]. ^  F
     unsigned int count = 0;- q) e: b- J* Z# x3 T# w- ^: W( v! B
     unsigned int flag = 0;
& F7 ]6 c- G4 m& g
4 N5 Y1 o9 N; @; H0 q& C7 o     if(numBytesToWrite < 0)
. I; u. _0 H/ d- |: Q     {+ k4 }3 O! o8 T6 _
          flag = 1;
. M7 P5 Y3 W! z+ X  G. E6 d     }
' S5 E! p5 D" t  \, j: D  F9 P) A' O% K- J
     while('\0' != *pTxBuffer)1 U' Z: h9 J; u. `& p
     {
+ ]: @- r, r, R# s          if('\n' == *pTxBuffer)$ F) q$ P3 w8 U& M
          {$ T! L' j/ W4 w2 l
                   UARTCharPut(SOC_UART_2_REGS, '\r');
6 i7 C+ R$ e$ n+ |: H3 w2 L! A9 U                   UARTCharPut(SOC_UART_2_REGS, '\n');, b3 A$ p4 M5 \# x" J' B/ k
          }
7 `2 y; M* y* S# |4 e; W          else
( j9 r  }$ l, B' y6 R          {4 e$ o4 h1 X- s6 _. \
                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);7 b' w. w5 ?8 i8 b  j, b5 Q
          }
3 D; ]$ k$ o$ g3 s; c  E1 s          pTxBuffer++;+ M3 a; F+ x9 v! u, a' B& V/ [6 V
          count++;1 c) U  Y7 j7 q- ?& h

' v3 D1 ^' k4 Z: u          if((0 == flag) && (count == numBytesToWrite))
: l0 ~' u" q3 _( \: u, z$ u          {
* J6 n1 S  f$ K, K# G               break;
0 L+ C( _" i4 t) H$ ~6 E          }! s& |/ c3 N" Q
; x8 ^& I; J9 G0 g' \
     }
- t( p3 L3 W) f- Q! m$ K8 w! i- a& i" Y7 Z; M- M  |8 S$ y
   return count;' g5 K# D: A9 {9 C0 P# D3 s
}& N6 g; ?% s& a( T
/ d3 e  c1 u; D

作者: human    时间: 2017-3-21 22:00
没有出现这样的问题
8 x' I0 o% C4 X" S8 I# T看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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