嵌入式开发者社区
标题:
光盘UART2_INT例程
[打印本页]
作者:
51DSP2016
时间:
2017-3-21 19:11
标题:
光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
3 i8 G. r) @- n* h/ Z& O& W5 F
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
) Q0 l; \: O7 w7 K
0 S7 H) P( S; ?8 R2 g0 N
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
. s# y( X2 T o
{
- A6 A( Y- {3 Y/ v! R
unsigned int count = 0;
7 N; B$ d# }5 P6 F3 r& o
unsigned int flag = 0;
2 v2 g/ S5 I+ k( M
" X1 F1 H, G/ q% {8 ]) v' k7 u p
if(numBytesToWrite < 0)
& a5 [% Z3 A7 U) s9 [
{
: Q3 M1 g" \9 D: r: v0 x4 F
flag = 1;
! P! ?+ K3 m1 ?" ~; }6 Q
}
+ b' ? U. `0 Y8 c
. f9 e9 f0 C) v; @
while('\0' != *pTxBuffer)
7 M3 b- @7 k. q _" B! b0 j
{
/ |% Q, h3 x( Q" e; p3 L
if('\n' == *pTxBuffer)
" [! k6 Y/ O/ P- c! v4 r
{
& |$ k' \) A' o
UARTCharPut(SOC_UART_2_REGS, '\r');
0 m6 l6 n- k1 h; M, ^' n0 Q* P
UARTCharPut(SOC_UART_2_REGS, '\n');
0 E3 K6 I$ n! K& T1 n
}
2 `. P) Y; X |* i6 b; f' b
else
6 \: L' _- a9 c( s1 T
{
$ h6 w' \7 i( ~ S1 T/ f& }5 O# d
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
) n& V) g2 t5 B$ c
}
; u2 Y; ?3 H% ]
pTxBuffer++;
; r, k' p1 @, t# U: b
count++;
/ Y" w" K4 D/ Z; I) O6 U. D: D2 h
; W+ X1 V0 X& l+ Q. u( @
if((0 == flag) && (count == numBytesToWrite))
$ r. }7 A: y6 f4 h* g1 }# y, D
{
# q+ M! l. U# [% m7 s% Y/ E
break;
6 d+ F- B! F$ R: Q/ X& k* D( Z- Q" m8 f
}
- `; |* V$ z% f
: f( ]* P9 T6 C# q! E
}
5 @% {9 n5 Q& ~$ Y
( F7 t% c1 A; u) I1 ]
return count;
, r, v, }' z* U8 J7 v0 z
}
. t! s- E( R# e9 _+ z
; |; ]3 f0 b9 c2 e! k8 Z1 P
作者:
human
时间:
2017-3-21 22:00
没有出现这样的问题
0 h W& f1 l4 D: E2 ~
看看是不是debug模式
作者:
希望缄默
时间:
2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4