|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问( O# l. X* @+ {- k# i" U( U
1.。DSP解算出来的数据是存在哪里?/ r* X8 Q$ m8 r9 ^) T+ x
2.。在例程中有这段代码:/ i. ]8 s: v, U+ {2 L
unsigned int int_id = 0;( c, ^8 c+ {; w9 o# T
5 W+ \8 y' s; d' B // 确定中断源
4 U3 B4 f/ l; T3 N0 c7 c7 g int_id = UARTIntStatus(SOC_UART_2_REGS);
2 ?! W% u; U& o0 O( M6 a4 T
* R$ k4 ^1 R7 @ a& Q // 清除 UART2 系统中断; ~% n% B& C& h# x6 i3 f& V
IntSystemStatusClear(SYS_INT_UARTINT2);
) j8 {* D! T" ?; J3 J) B! L4 [& e8 v$ j3 w |
// 发送中断& W7 D6 E; `. S) Z
if(UART_INTID_TX_EMPTY == int_id)
" S; M) X3 w0 H8 E, i2 H {. z6 k. J4 b, z, v. Z/ p8 Q
if(0 < length). V8 h! ~0 g% N c1 F& N+ |
{
0 P" P0 L2 Z; S- G) b P0 m // 写一个字节到 THR
- i/ j& k F' E! S4 } UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);2 t4 K6 H" z! L
length--;
- N! w! R" Y* g i! t/ q/ n count++;
7 {5 F' N9 }' d" c' a1 Q! |' O' ` }1 u w! y$ y: T2 }1 Z5 P) n4 k
if(0 == length)7 S8 y# Z* B, y% E6 o
{" [' I, C B% j; `* a [
// 禁用发送中断1 P }9 h' Q( r8 j$ X, [! V
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);0 p: h0 ^8 z9 L/ s
}, p. w: B6 L+ ]7 _5 z0 A
}9 d, ^- r+ e' `$ ^" L
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|