|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
( o: |' O' F, E1 e m/ Z }; ~; w1.。DSP解算出来的数据是存在哪里?% o- o: r/ j' L, H6 a
2.。在例程中有这段代码:7 E: [% w4 A$ m% ?* g t5 @$ E
unsigned int int_id = 0;
3 F1 C; x* X9 E6 b& ] Y( Z0 i" Z7 `3 a1 w* p" a3 x( z0 j
// 确定中断源; e5 l I/ b+ Z2 f6 f/ j# g+ j
int_id = UARTIntStatus(SOC_UART_2_REGS);
* }7 p# x/ s0 k5 M
7 O6 @ i6 W- L9 B, r9 H // 清除 UART2 系统中断
8 A _! q5 a3 C; R( C/ ]; \ IntSystemStatusClear(SYS_INT_UARTINT2);+ f9 f$ _+ [9 @
4 `) _2 e% K1 D // 发送中断% R7 U% y4 I5 \% f& L0 r% V
if(UART_INTID_TX_EMPTY == int_id)! t; c9 G1 D$ B# D
{
( O3 X* O& m2 y if(0 < length)) A( y9 @/ [2 Q' M+ y) @0 g
{
. q7 j! [2 C6 x5 P7 {+ n# a: U // 写一个字节到 THR' x7 k7 Z7 ^: ]8 a) i" l& x, b3 k: e
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
' B( O1 o! T$ J9 w' R3 l( Z length--;
6 n2 f8 @, O3 p& `8 @8 c count++;
1 x7 P4 ^0 q/ m5 O/ a# C# E }& n3 x! g( I3 [; H4 B! t
if(0 == length)5 h$ b# r2 D7 C. z. K/ f; }" |& N
{
0 o1 ?& G8 y* l$ s: t, z5 t7 ` // 禁用发送中断
4 t9 f& b9 \% e( H c$ i UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY); J5 K: b5 K* ~' K
}9 z4 g) M; @! ~; D5 ]
}
& V4 `8 ^3 k/ t5 i* d我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|