|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
T$ Z g) V4 _" M0 `" @( \: q1.。DSP解算出来的数据是存在哪里?
I& t: Q3 ^2 q* [" E2 ^1 c9 Z* ?2.。在例程中有这段代码:
2 z' u2 T6 R$ j) M unsigned int int_id = 0;
5 W7 J5 W. p7 i* Z# N
: P8 x8 }, q+ b- C // 确定中断源
& W. `" P) V# C$ i- q1 g( I int_id = UARTIntStatus(SOC_UART_2_REGS);5 K) E9 t: S9 D+ ~# k* f3 n
# x! |6 e+ W; d: e! B" E% p! b
// 清除 UART2 系统中断" R, ^4 f( Z+ ^* G* V: `
IntSystemStatusClear(SYS_INT_UARTINT2);( \* L8 `7 u* i8 }
1 H$ |4 G2 j1 o
// 发送中断
f% X, ~# w" w) \% ~ if(UART_INTID_TX_EMPTY == int_id)
2 d) E: I, n5 a' c9 u5 i {% S5 t6 E# L4 v6 g5 h- Z9 p8 J
if(0 < length). n3 w" s$ a1 I: w6 \
{4 ]7 T. U" \) s+ P, v
// 写一个字节到 THR; x* Y, F9 R, V. ^0 L% R! i2 |4 n8 A
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);( F8 L4 V# t- y/ f+ P
length--;: p( C3 D8 o9 v" v8 x/ g
count++;
6 E3 N) V$ Q/ ?7 q }
2 c( h% t: u8 G: B. J! K2 i0 H& y4 p if(0 == length). v) Q( Y# K7 z; E0 S
{# q3 C n& v6 g0 _% _
// 禁用发送中断) V2 r- C( `/ z" J. `
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);% r1 K2 i( z& O
}
/ a$ o& I6 J- M6 ~+ T3 x+ f }7 i. N$ h: k% l; [7 W' x; L: z4 M; I
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|