嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。% `# C2 K" U& r, b& s3 m
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。8 n2 |7 _+ W. Z- x
: z( r5 s: y4 y1 l
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
6 T. v7 _- s3 ]( [{0 q2 d% D! i# i  k9 Y
     unsigned int count = 0;
5 q! ^$ R5 X9 x! s' f     unsigned int flag = 0;
$ \" C( x- ^3 N# B7 B8 B# l. K" \# I
     if(numBytesToWrite < 0)1 V- D% ^1 E% s; y9 Z5 V9 U
     {5 Z8 ?: n0 d+ ]% _" l) M1 A
          flag = 1;
: k3 J6 _! b8 m+ N! B& p/ y% u) I     }
  m# `/ D3 n5 C4 \7 X, D+ c/ `, c% i! `) w
     while('\0' != *pTxBuffer)
! A, a8 l4 d* h  W; n     {5 _$ C' k3 r8 B
          if('\n' == *pTxBuffer)
/ I8 y+ R5 Z" d" N, j          {
; E$ m6 l% S- K3 z; \2 L                   UARTCharPut(SOC_UART_2_REGS, '\r');
1 e; I" w  E9 m+ j8 K& P                   UARTCharPut(SOC_UART_2_REGS, '\n');
6 z- s; R' m! i1 v8 ^          }! C" {2 P$ e0 e! D8 U! _
          else
# X4 v3 x2 ~# t' O4 M1 I          {
, g. x! W! z  `: w. N9 x  A                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
5 i3 u0 G1 S9 l  t$ c( U! C3 N* T          }9 r$ T1 Z  G( m$ y: C
          pTxBuffer++;! E. M7 q* A% t
          count++;/ F( O9 U) Y0 U! V# s3 S: u
. Q0 I. N7 c$ a# D* m0 f
          if((0 == flag) && (count == numBytesToWrite))- Q, ]) C7 C! F& Z+ g; s2 ]
          {
- C% u9 x3 q, S7 q/ w# j2 z               break;
$ D  V, H5 Y9 \, u          }
* E/ p( @) ~# q2 F( }$ c0 {+ b' w! w+ D/ x/ F6 |6 }/ H! Q
     }
/ ?. O6 z' G9 b7 b  B* v' ?! E% Z
% P+ ]5 P' \1 e& ~/ @, D   return count;
8 e' E* d6 h6 M6 W0 I2 K) y/ Z}% V, E% z( {* z1 A6 x# ~
7 P1 {9 n  ^( ?  R3 Z8 T3 d

作者: human    时间: 2017-3-21 22:00
没有出现这样的问题
2 r% j9 z& [* N! p9 C- x4 q看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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