|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问. G5 |, b9 {6 D( Z) @
1.。DSP解算出来的数据是存在哪里?
! V4 A$ p; n/ B. v8 A2.。在例程中有这段代码:
# ]1 R% y2 n' _8 T$ ?6 `3 O: ] unsigned int int_id = 0;
0 r4 x# b1 `/ n6 X' [1 X S& w% p4 S6 B% M5 d% ~
// 确定中断源8 J/ O+ R$ [) ~! w$ b4 x! y
int_id = UARTIntStatus(SOC_UART_2_REGS);1 `; h0 f- I( g+ N; s* k2 L+ i
1 Z7 x" l" Q G9 B% B6 E- r4 Z // 清除 UART2 系统中断
8 r! Z- @8 Y, A) n! p6 U7 I IntSystemStatusClear(SYS_INT_UARTINT2);
7 g S9 k! u% a9 w& `: c& N8 E. e$ y. D
// 发送中断
2 ]2 \' R5 N: ]) Q" a# |5 r4 R, o if(UART_INTID_TX_EMPTY == int_id)
/ b9 O/ _6 _! v& G" j9 V- M {
1 b4 q Z3 D) ?. J if(0 < length)
/ n' I5 b' I8 Y {8 J7 ^/ f# M9 T% @3 U. D
// 写一个字节到 THR
3 r: M1 M1 l; |6 {( p UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
7 {: n" T Y" t7 a8 B length--;2 z8 y ^8 c/ u# ]: k4 O
count++;8 w6 m% i# Y7 S) l E& ^' h, y
}
; J1 G" n0 X; E5 X; ]$ e$ \ if(0 == length)( M1 w3 M2 S3 T5 t/ i4 i
{! f! M& P( ~3 p" Z
// 禁用发送中断
" C* K! ]/ i0 m$ w2 Y# S UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
: B% X% J. L& {) ^& K }" J/ w& i% }- x' N( r8 N! u8 j# t$ ^
}
: N; y% w0 T; c我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|