|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
: c1 ?( y* a. h2 ]5 Z1 g) f1.。DSP解算出来的数据是存在哪里?
0 C. k# |" S, t$ x. V6 j' M2.。在例程中有这段代码:
; x% K8 s) Z- t/ u( Z4 @$ @ unsigned int int_id = 0;
& {0 }- V3 f! e" ?2 q4 b6 y- b5 `$ E& P% }/ @. F
// 确定中断源) j8 E* x. ?* Q& r6 Q" c' ?
int_id = UARTIntStatus(SOC_UART_2_REGS);
3 i8 ?5 \+ d7 }
: w, \5 g0 m3 s; \0 K, c4 o, ]" m3 g // 清除 UART2 系统中断
, A4 x$ F7 N: J n) G: ?; P; y! F IntSystemStatusClear(SYS_INT_UARTINT2);9 Q& `8 |5 |0 ?, |: S; r
, i+ H3 q/ G9 j1 t# M
// 发送中断
( Y. B, P6 Y) i if(UART_INTID_TX_EMPTY == int_id)3 @- D- O7 M- v3 X: C3 r$ A* b
{
$ x$ H+ G0 }8 l- [9 ? if(0 < length)
+ b$ m. \0 ~+ N! Z: z) W: w$ R {/ p U" D, K& S5 [+ d1 l
// 写一个字节到 THR
. E8 n/ U( Q8 s UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);4 o! n# ?+ A: m+ Q4 m7 S
length--;3 c* C' s w% ?0 J% B5 o# ^9 W3 q
count++;
+ M9 h. @2 z& m! P/ u. X% ` }& e" N5 f* _; v" @$ Q
if(0 == length): A7 O+ a8 }4 r5 J( ^
{
: K) `( @+ m- I1 t // 禁用发送中断' @$ X1 O7 {1 [- x6 ?
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);5 A2 t! |; h7 u: O* l3 @& ?
}! { R, ~) H4 h- G" r
}
# H# L- B! i% m% b我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|