|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
! {2 z; |3 Q- P7 I1.。DSP解算出来的数据是存在哪里?% T4 n W3 G* w/ w" }
2.。在例程中有这段代码:' |7 n* Y- Q) S) p
unsigned int int_id = 0;
- r: ^6 N! }0 b0 v$ m' X2 G+ V6 f& E; f6 f0 _9 x! a: U
// 确定中断源
7 r* u- R, n0 i' g P* J int_id = UARTIntStatus(SOC_UART_2_REGS);
9 x# ~3 `7 n% q- @+ U$ B: ]" P% j& F$ L& [5 G
// 清除 UART2 系统中断. B3 _: q* `- U( g" _' w- z
IntSystemStatusClear(SYS_INT_UARTINT2);& C( L$ w- t$ @; n% `, J4 a7 v
3 M) Q4 B: ?$ [" a. z4 Q( a // 发送中断8 F% V# p* ?2 `5 r% k/ W) O4 H t
if(UART_INTID_TX_EMPTY == int_id)
4 ?4 C, I, y+ l {
2 F: R* o( L0 B2 S if(0 < length)' [+ `0 l- U7 z8 A2 `' o
{
/ j/ N4 X. g3 l4 ?+ Q // 写一个字节到 THR, f4 }0 ]& U8 V& g. n: K* p
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);+ ~ U$ r; F$ n9 e; u! [- `
length--;4 G1 v/ V4 D0 e, _/ \( ?/ t; ~
count++;8 G. {: K9 Q8 p9 e6 W* j
}8 R% z6 N0 V- d; s- G' y
if(0 == length)
M( l6 \7 q# ]; l {
' |+ K) w0 D4 J7 V) e! \8 v // 禁用发送中断
7 @( v& y% @ G: v$ L v/ @ UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);$ l0 c% Y% D0 v# i, I4 j
}7 ~" n0 Q$ u- U" b6 C. i( d
}6 \" f1 |2 z6 `3 ~7 i
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|