|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问8 e- }: B# K* n3 t% s
1.。DSP解算出来的数据是存在哪里?
( f4 ]9 p5 F/ R3 Z7 ]3 U6 c# u2.。在例程中有这段代码:
; j( y7 G) ^: p/ Y( Q; T8 O unsigned int int_id = 0;+ \# ~# N; l' L) j! ?2 F7 n& I
7 s7 I$ J# J9 W/ G! S7 L8 _ // 确定中断源
: F& N/ Z: g' D+ w' i# @; A5 s int_id = UARTIntStatus(SOC_UART_2_REGS);
% P7 n) h" i; n1 |+ y
& R% B& y+ @+ \ H7 K/ z3 D // 清除 UART2 系统中断
4 D. [( n! U4 w$ C$ P IntSystemStatusClear(SYS_INT_UARTINT2);
- b. ] G+ r" k) N2 P
7 j1 \6 L, N# h E6 I // 发送中断& }: y5 h V, b: N4 `8 f+ {
if(UART_INTID_TX_EMPTY == int_id)- d. Q/ C# g$ [' W& k8 S: J
{
2 v" V" z: d- B" p0 d0 s if(0 < length)
& K( m* c. A8 R+ ^2 y5 W( K" ?/ L1 Q {% I% C" G# C7 j
// 写一个字节到 THR6 y% r E: i( o5 A
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
# u1 ~5 v2 d6 w0 X# ~ length--;
% l/ O- D7 e& c count++;
# @$ a6 Z' v' i6 n }2 o- x, |; V4 i" g1 Z7 @' K
if(0 == length)
4 j: \7 y. W* I) @ {6 r5 f3 u% }& ]$ v7 T1 l9 K7 S
// 禁用发送中断
# g5 P: n% t7 d8 {, ?5 w# ]( p UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
# r0 {8 f: u" S. V1 `2 i4 m }7 r0 b; i: B+ _& K5 s2 d9 Y
}
$ z7 ] z W+ G& I# V8 J我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|