嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
  P( g5 w4 N. A经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。. P% g0 z0 J+ \$ y( `6 L
1 \, g: w+ |0 Y' s! `% {
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)+ T# s& p4 ]& W/ a3 J
{
2 A6 e6 O' M4 V7 O" E- a     unsigned int count = 0;. P6 r, h  w4 l; g  j6 H
     unsigned int flag = 0;
% @% A" _. ?3 C% ]' |# r3 `' W- s# [
     if(numBytesToWrite < 0)
2 {( G8 L" z, e0 O1 C( N/ E$ N     {5 ?! k+ g9 y8 C
          flag = 1;' @7 s) K) T8 z' Y5 J. g8 V
     }. Z+ W+ l  |* w
# C6 e& ~$ h7 G. T+ I! a( b9 e
     while('\0' != *pTxBuffer)
$ u- J$ C# i- _     {, J( }1 `8 j( b8 S$ s
          if('\n' == *pTxBuffer)
' W/ P+ g. |7 W' M! U          {- C. e1 k5 d& Z5 S& B" H
                   UARTCharPut(SOC_UART_2_REGS, '\r');
2 F9 ~" U. V9 R# p* _/ V& p; Q( Q                   UARTCharPut(SOC_UART_2_REGS, '\n');
2 \9 Y/ S. }' y; K8 s. r. B          }9 w4 B" _2 ]8 J8 @: _6 }
          else4 _% B: J+ T  H2 E- J
          {3 L/ S% m5 a% c& @8 W1 E
                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
: u' o* `, @3 ]: S          }/ }; ?8 m0 Z: A8 Y
          pTxBuffer++;2 x6 z6 y! N( l% V
          count++;
9 h& R: l% R1 L5 r3 ]  s! p' U6 |
2 x  E( k5 ?! Z          if((0 == flag) && (count == numBytesToWrite))6 Q1 e; s2 C# D: C
          {1 w0 Y; u4 H$ w$ L7 \
               break;
1 Z& M1 S% a2 L$ `. V2 ~; w          }
3 x! V1 B. D) P2 _9 w0 }  g' L" N$ Y  p2 ?
     }5 Z0 B& J/ y+ I6 ?, z

/ x' x# y9 `4 ^! r3 Z6 W1 W   return count;
. N1 A, U' B% R3 S# m, ]" p* }! v}
- H9 y6 e( u3 S- x
( y3 c# ?3 b) c6 i
作者: human    时间: 2017-3-21 22:00
没有出现这样的问题
  }/ U( {( I# N& ^9 z/ v看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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