嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
. y6 w, N9 V- I经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。7 V6 {5 l$ B8 O& F+ o8 _: l; o

$ T# I! e) Y: L& k4 W4 _" e; Eunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)& T' A! C7 x4 d; R5 R8 y7 K% j
{/ Y- p8 W- I* l% A' S0 e5 k
     unsigned int count = 0;
: x' G3 k0 w: o9 ]' L$ S7 G     unsigned int flag = 0;
! X. C8 v) s+ h, J7 L
+ |' P6 r& K; ?4 J     if(numBytesToWrite < 0)
; _3 N  E  U4 r3 z7 W0 B: ?4 c     {
* j' ]$ ~' I5 j" O          flag = 1;
! E/ @# m6 g0 V  l     }
# ~3 S1 S8 O* d, Q9 L/ ]5 X5 ~4 [$ D/ }* t. w6 T# K. P
     while('\0' != *pTxBuffer)4 Y/ l$ F( M6 ]1 Z5 _
     {  `; U; p& q, s
          if('\n' == *pTxBuffer)
6 E6 }1 ~2 P2 C% l6 y( Z# `          {
) A* K$ {" K! \4 r9 R                   UARTCharPut(SOC_UART_2_REGS, '\r');# y1 m$ C6 Y% V  c
                   UARTCharPut(SOC_UART_2_REGS, '\n');
3 s% H: h+ f& R( m+ o; x          }) ]. g, |- U* H2 B
          else
. o; p/ J* b" b' g0 j! V          {0 @& a" D# Z9 L$ R2 i7 h7 m
                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);  l7 ^5 d1 }5 a# b; X% x9 }" z
          }9 g) ~5 t" h2 T: y$ y3 |
          pTxBuffer++;
" l6 {% S5 \& X4 G' s" x" k          count++;
, ]% M7 @: {4 [5 u1 j
# ]: [  b( |( O: P          if((0 == flag) && (count == numBytesToWrite))9 l, S) L/ {' r& F
          {
8 C2 ?7 ^  f6 ^, e% c! N& y               break;$ V% ?; i0 e6 H0 D; ^4 d
          }& N% b6 H3 ^( c- L5 m. o' h/ z
( ^  D$ Y" e. z
     }4 ~% R) ^- ]0 ]* D

8 t" H  L. s; v# p   return count;1 w9 n- [9 p: k# b% C! ^  x
}/ g; t, V5 @  `3 L  l* P7 Z

( Y# y' h1 T& X) o* |
作者: human    时间: 2017-3-21 22:00
没有出现这样的问题
& k  P% ~3 G# O' l/ [看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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