嵌入式开发者社区
标题:
光盘UART2_INT例程
[打印本页]
作者:
51DSP2016
时间:
2017-3-21 19:11
标题:
光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
3 \8 H! y# a, i3 K* Q/ k) t7 {
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
% l; j' X) {7 W% O* f
- h3 o n, \# z7 T A! V3 F1 c
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
/ D$ e/ N D5 r
{
' v1 D* U6 I% m4 l. W8 ?
unsigned int count = 0;
}; J$ m5 G" m
unsigned int flag = 0;
9 h/ v; C" { a
+ p# i$ ?& i7 k7 P
if(numBytesToWrite < 0)
6 B/ w" W4 C& z+ y
{
/ A! y( H5 p1 |! R+ b) a
flag = 1;
" @6 Q8 u: j+ _& M/ O, x' c
}
/ s' r5 K" G, r% D3 y* { D
+ I0 ?% ?8 q6 }6 g+ [, j! u
while('\0' != *pTxBuffer)
* Q: {5 v. x$ b0 l0 _
{
# d& Q& ~. U6 U
if('\n' == *pTxBuffer)
! U7 h3 j( K% U% O6 V. S; M4 Q
{
6 Q, p1 `6 e. f& j
UARTCharPut(SOC_UART_2_REGS, '\r');
G( W3 v7 ]( t [4 N
UARTCharPut(SOC_UART_2_REGS, '\n');
, j" N& S3 X) f$ J
}
! `' t* j, B, s( B& h! R0 m
else
) e0 L$ G, T8 l7 p4 O
{
L, T. @" A+ n; I! s( w' r
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
' [. `4 y: a: o5 J6 O9 d
}
1 c( @# w4 u4 @0 w* V
pTxBuffer++;
* J6 h$ n# M& G0 ] l: X2 i
count++;
9 Q$ {5 A0 X4 w* I- C% o; t% Y) P
* ~ W4 Y% ?, g) ?; v
if((0 == flag) && (count == numBytesToWrite))
# ]4 j& [3 y$ T' d! w% j
{
, i! h9 q+ e4 n2 @$ R
break;
5 a, J" F# A% h% f: l
}
% P, z6 h) _: @/ B' e
2 c2 f( x$ i7 G5 m- \# `
}
, Z _- |- S2 z t; l7 i
; n% P1 U1 b! P6 L! f
return count;
: Z% G, _) [0 @, z2 R
}
+ W" I3 {6 L. f# ]! K
|/ L# B( @4 v/ M$ _; x* ^
作者:
human
时间:
2017-3-21 22:00
没有出现这样的问题
3 K3 f7 |1 Z C: X. K4 X
看看是不是debug模式
作者:
希望缄默
时间:
2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4