|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问+ P4 e1 e; b2 ]& d. J' Z7 U
1.。DSP解算出来的数据是存在哪里?
# a, L) u% C) D# V; D1 E/ P% j2.。在例程中有这段代码:+ ]& F, ?8 K: X6 O; l7 ?
unsigned int int_id = 0;
7 C5 W0 ~& U! @( U: H" b! M7 J4 w" W' t; P* ?
// 确定中断源% O, ^5 @/ G& @
int_id = UARTIntStatus(SOC_UART_2_REGS);
5 o* d. y7 ~$ c- e1 e& o D. L
% e/ C2 a# h7 [ // 清除 UART2 系统中断
$ o6 T, `* J5 e9 l5 j) S IntSystemStatusClear(SYS_INT_UARTINT2);
2 {2 H. F2 ?8 X7 r5 p5 H
9 k( S7 H' Y2 N' w$ K // 发送中断: b1 @$ j4 h; h: u2 ]; N
if(UART_INTID_TX_EMPTY == int_id)
# |4 f' J' E- ~5 y, l* `8 p( k {
) e( T* J7 d& q3 f" F( L/ t if(0 < length)# q6 L7 d. @( P) Q7 i
{( b. K* z6 @" u- Z7 c# z. e/ y/ L/ ]6 U$ o
// 写一个字节到 THR8 S* {( s) g. \( O7 ]4 Z" y
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);1 H- r2 W4 n% t7 q8 M
length--;' p% }$ m- a( h- n0 l6 B
count++;* v1 n& }/ |' ~" \
}
6 Z/ |& b* d" o7 E9 F. G if(0 == length)
% m9 Q. [5 x; a+ N0 t1 l% p# W) b {! K; K1 w3 ?9 j" t
// 禁用发送中断
; s, w- y" H8 G UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);1 t' K" z. Y, z1 A5 @
}
; H$ a+ g0 _8 S6 Q9 H! G+ J }! G {$ F* ?6 Q" R0 d8 J
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|