|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
B( v1 [. R7 h& Y) F1.。DSP解算出来的数据是存在哪里?) x1 ~; W8 w- s8 J, F9 S
2.。在例程中有这段代码:
; I5 R2 T/ x6 d0 }3 g" l* ~ unsigned int int_id = 0;" i1 ^/ l( I1 D
) x, d5 v5 ^( v. U* G" c
// 确定中断源
" [( _" a6 S5 [ int_id = UARTIntStatus(SOC_UART_2_REGS);" s5 B4 T& C: c8 h$ \ u1 Y
) v2 Y. G, b# Z j- W
// 清除 UART2 系统中断0 i% Q0 F# {( G) j l9 B% ~; U
IntSystemStatusClear(SYS_INT_UARTINT2);
8 u7 A# b: I" y5 ^0 u7 g0 K4 t6 E6 I5 |& `5 ?3 r+ i6 i6 L. R
// 发送中断5 Y* ?5 g9 Q. v5 Q, a. I4 u( F
if(UART_INTID_TX_EMPTY == int_id)2 d( [# V& b. n8 a4 F% D1 w4 F
{( v7 U* F; S! H2 l! l: G3 B+ A B) [
if(0 < length)
; |0 n/ C1 i4 w4 ~ {
1 v3 {5 A/ H# e6 ~ // 写一个字节到 THR
' S. c1 R. N4 t' c6 }/ c l, S UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
$ D+ Z2 O2 m# g; n2 N# E) h length--;. \% C# m% i* ^1 B: q
count++;* @' D6 T0 c: k }# f( Q7 b% a8 B3 @% U
}
9 C% l. m" T3 _7 H if(0 == length). w2 s8 @* q6 \: P4 g
{
+ k7 m( e; |: |6 \- w // 禁用发送中断
$ d1 X& @* Y' x8 Y0 u0 ^! M# X UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);6 S4 e. ~8 t. H2 ~7 l) F' F
}0 w+ k' y$ q2 j4 D# k. r3 u' z
}! H. i' L/ J, v5 g+ r. v
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|