嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。' h3 Q( i% O: \1 c
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
9 V) }) x( Y# Y& \0 t3 V
5 {" I- W- ]5 l4 U+ {& Runsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)1 |4 y) l- k$ ~% y: W
{
3 H9 h0 @% F9 z) n% c9 ]     unsigned int count = 0;
/ {  Y' x. b8 m1 Y5 ~/ N     unsigned int flag = 0;
7 m; ]0 N. p6 \. C) g) U' [& P( ]+ C/ S$ v3 ~
     if(numBytesToWrite < 0)8 \+ O9 f. o9 {& c
     {; ]+ m5 Z  `. T; l, q/ s
          flag = 1;
2 r8 D( p8 O+ Z     }3 y2 c3 Z  J* D! j: H& d9 g
# E- F$ q' s5 b* g
     while('\0' != *pTxBuffer)
: J9 a5 |% s7 p4 Q     {& `: W4 G" h' K. H8 P, f: O
          if('\n' == *pTxBuffer)
$ a; K$ Y/ Y8 o& M* I          {
; a7 z( `- ]$ t4 o: x- S4 T                   UARTCharPut(SOC_UART_2_REGS, '\r');
9 w% c" {* J% C1 o% o                   UARTCharPut(SOC_UART_2_REGS, '\n');
) b8 N6 u8 K/ D, A: E          }$ o( K" T" N3 i5 f" g; X% F
          else
- y" E4 ]* v' C0 U# V4 Q          {
$ x; K0 ~: |$ ?+ w* W                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
3 b5 W- D7 m" U7 T          }8 V) p, x1 [  ]+ l  m6 [
          pTxBuffer++;
7 i+ [# f' @* W" T3 o2 z          count++;
/ T# S' g: b  f0 k; Z2 }/ [: {  W; w6 R3 T: G5 e
          if((0 == flag) && (count == numBytesToWrite))
% i7 s6 J% k- ^+ d: R4 Q. `7 Y0 {0 j          {
" j! L9 ^1 {0 M$ J2 m8 S               break;
4 l1 i* r4 d5 e* N: O; a          }
  h; x0 U" ^  J2 @' y/ T+ m$ N1 |8 `- K% }
     }
0 k! V" v0 f4 Z% ^% K) o0 N  X  ]! v* Z: m  J8 i
   return count;
# O$ O9 H  c7 i' E, ~}
- o& N7 R4 P" m3 R3 G5 ?4 c5 `; g) `9 j# ^, Z4 H# Z% B0 K% |

作者: human    时间: 2017-3-21 22:00
没有出现这样的问题
6 t5 V) P( D0 Z; h/ U- p看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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