|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
( e+ f5 C& y2 q8 @5 i! ?) K1.。DSP解算出来的数据是存在哪里?
( H9 f) @5 ~6 ?9 @3 S" s% W j+ R2.。在例程中有这段代码:
) |: L8 F0 j/ P' R) o unsigned int int_id = 0;- R& U2 G. d2 t* j% L
. o3 o. W+ V* J; s, ~
// 确定中断源
7 a2 n7 S3 t, h int_id = UARTIntStatus(SOC_UART_2_REGS);! S9 {# u' N0 n; U% S
; G9 F5 K$ r) Q // 清除 UART2 系统中断
F* ^8 M6 h7 b" ~6 Q IntSystemStatusClear(SYS_INT_UARTINT2);2 g% H0 N4 _" m6 R' o3 S9 m7 t
4 J% N/ h9 \6 b; F0 Q) G2 ^$ x$ Q // 发送中断/ u$ L3 B0 B" `9 s* m
if(UART_INTID_TX_EMPTY == int_id)7 O, w" x$ A3 u u$ `
{
1 `' Y5 C2 C& N& F F if(0 < length)) ^$ E& j$ J" a4 ?
{6 g8 D/ a, D( f& e' k3 Y) V2 H$ T! r
// 写一个字节到 THR0 t g: S; A/ R0 r. Y' U
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
& |+ B/ G( L2 }2 i; j8 q length--;/ z; ?9 X5 K" i
count++;
4 m8 Y' v& n% g9 P2 R/ O) u9 I; |. D }9 N6 |, S! }$ U* s' Z
if(0 == length)( O2 I$ r. W' B7 U! V
{
( v# R0 l ]+ K! u9 t) F; Y // 禁用发送中断
0 M- S8 \) b. m1 D UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);$ D0 a/ R5 }8 U) Z( [5 A6 ?
}
0 n: q+ w9 X. ~: f4 | }
- B( q6 k; Z0 ^ Y* y1 y我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|