|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问/ X. V4 ^) [. h' f
1.。DSP解算出来的数据是存在哪里?- C _8 i/ O# \; p2 L- y
2.。在例程中有这段代码:
( i9 ]: B3 s5 s. P* k" I3 l( G unsigned int int_id = 0;1 n: x. G8 C# ]5 {, h6 [
: L X& t6 q: L
// 确定中断源' e: E0 b v+ Y+ Y3 x/ D
int_id = UARTIntStatus(SOC_UART_2_REGS);: o& N( p+ o$ @" E: C3 O( U4 S3 }
. q, t l! P9 J& G2 A: }# F$ ?3 u+ e // 清除 UART2 系统中断8 q4 p/ I' H8 m0 s# j) k
IntSystemStatusClear(SYS_INT_UARTINT2);) L" J4 k$ F; y% |
. _ U W& V( v; ?/ {7 L, Q" q1 S
// 发送中断
( F: U, N k; G* Z if(UART_INTID_TX_EMPTY == int_id)
: N" V- S# O: U! ~( B$ u4 f4 \- u {' c. X- ]% J4 L+ o3 `
if(0 < length)
2 u0 s$ O a* N& p' r {
( L5 E1 H% n5 Q. E* W // 写一个字节到 THR8 ]4 [. b& D$ t6 W1 V
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
) ]% d8 u5 T) x% e7 p1 J length--;9 x3 E+ o+ i" G4 J
count++;% |3 l' w1 a0 Z: ]* b1 X
}2 f5 A5 Q$ Y6 N. n" N3 W9 N5 s
if(0 == length)1 m. C/ h% L4 i x- p
{8 @ K) r# I r- p
// 禁用发送中断- X! O: l; O6 q3 E& L' f( ^
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);+ _0 \/ e4 m+ m; ?0 h0 L5 d
}. Q% j5 ?1 k1 m; c" k
}
! Y- X/ g" b/ I0 ]' M3 b我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|