|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
3 l) W$ H8 `* q7 f+ H2 @7 c- L |1.。DSP解算出来的数据是存在哪里?
" Z3 l/ i" n2 R6 @2.。在例程中有这段代码:& G+ G5 E$ m; @
unsigned int int_id = 0;0 g+ t7 }5 M! Z
+ P( g" I" o9 f' u& J7 K2 m- j // 确定中断源
- ~% {/ y5 _! b: y' I* b5 I2 o1 V int_id = UARTIntStatus(SOC_UART_2_REGS);* a1 c4 C) P+ w. o
0 C& s& P8 C' G
// 清除 UART2 系统中断
3 v) d( w4 [& D' V IntSystemStatusClear(SYS_INT_UARTINT2);. f5 ~8 }$ q6 E9 `7 N9 d+ Z9 i
+ ~* _ ^/ W) I& y3 P# Z5 ^- u3 x
// 发送中断
2 Q) ?) ?( U0 D7 d0 p4 c8 l+ \ if(UART_INTID_TX_EMPTY == int_id)
* {) M2 Z4 Q. e! Y& Q {+ y* l5 q0 o7 z X& @
if(0 < length)
1 b! A8 o5 m7 t/ z {
4 |" g1 E& l- X: U // 写一个字节到 THR3 T* F4 a H# B: ~7 f% Y: f+ ~- j
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);, o5 V& t, ]$ x
length--;
* l: a4 T. E& c1 Q count++;- v( V5 P! n" z3 M7 u
}1 {* {. a" i# o5 d% ]
if(0 == length)# ]4 d* g* y ]* E) L% O9 ?$ Q
{" m! _5 k* y- z% D3 T1 U+ a+ Z1 J
// 禁用发送中断
2 x- x5 W3 m6 Z0 W UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
/ z+ S6 P; L1 c) R2 ^+ } }& M% H$ ^" U- g; d3 `
}
- K* w3 ~; Q5 F2 ]我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|