|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问$ {. X3 K& X: ^6 Q
1.。DSP解算出来的数据是存在哪里?! D) P& f/ `" G% l' n& X8 |
2.。在例程中有这段代码:
5 x, R0 j Q; C unsigned int int_id = 0;
1 R6 L9 D+ ?; L W! }. \3 k$ P
/ W& { S8 Q; l* v // 确定中断源8 U# [# X. L- l$ L- |; p6 |
int_id = UARTIntStatus(SOC_UART_2_REGS);( o" l* t0 @4 S) Z
& K M T. L1 ~9 C% z
// 清除 UART2 系统中断
# E) u2 p3 u6 |& f" b IntSystemStatusClear(SYS_INT_UARTINT2);
9 x! \+ s* Y/ x) i- v6 r u
" P8 F, B$ ?' m, x2 W // 发送中断; B* L" K8 K/ f
if(UART_INTID_TX_EMPTY == int_id)
1 ?4 k" [# K6 J/ L, b @9 [8 }# W {, X& ]. y0 O7 M
if(0 < length)& f# J4 M: Y p" q" L! d
{' N/ |+ h8 k r5 E
// 写一个字节到 THR
1 |# M6 P/ Y/ K; P4 l$ Z UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
0 `; h( @; Z7 [4 a1 L5 }/ Q2 l7 Y length--;0 w! a% s/ f1 ~& \( t
count++;' _. K" m8 q( m4 ~9 h
}
& n! |' @$ O# J2 d6 s if(0 == length)
* K/ c( C% ^ H {
; j8 \# _0 Z2 f' y // 禁用发送中断% Q. }. U& v; w1 ~+ d7 T
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);6 v2 Y) @" ~8 Q8 p0 ]
}5 f$ c! @6 \0 f: ?/ a
}/ X0 t: Q1 J$ K: L3 u" v
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|