|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问2 x! V, v" @5 l$ l2 o
1.。DSP解算出来的数据是存在哪里?9 y7 T" \6 H+ l B, L5 u( N8 K2 k
2.。在例程中有这段代码:
( U7 y# {/ j$ s7 ~6 V" v unsigned int int_id = 0;
9 W6 ^4 t9 L7 h; @" s. R, b* ?% P
+ J4 P/ j) D9 i // 确定中断源
8 e" ?* ~" ~, D int_id = UARTIntStatus(SOC_UART_2_REGS);# a3 V; A! f6 t" U
8 P, ?: x! z7 b // 清除 UART2 系统中断
7 e9 P i, {/ n2 H! e IntSystemStatusClear(SYS_INT_UARTINT2);& P f( W9 ?& d3 S/ }2 h' V
3 c, e V* K$ g, `/ E! Q; R/ b // 发送中断. T/ a8 q; y0 W+ z7 Q: X4 [
if(UART_INTID_TX_EMPTY == int_id)* v' _2 O1 m5 o, s
{: {! @/ Z- c' _5 s- ~5 v( k T
if(0 < length)$ B; J, D, l% X0 t b
{/ q { N ?. Y2 f4 Y6 {5 h; g' C4 m5 f
// 写一个字节到 THR |8 t% G2 w$ \4 O: I) r
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);. B5 N$ U3 q5 }
length--;$ M) l$ r4 a; ]7 b6 E. \5 d: w- B
count++;' }5 u6 [5 k; h
}
* L1 S3 y. a( u6 a8 { if(0 == length)
v. m ~3 A; R8 a0 _* t7 x: P; b {
( ~# `1 k% O# h5 \8 w // 禁用发送中断
, c; q; Z: H F# j5 W, o UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
0 u$ @ H; X6 Y3 W. R c3 G0 ` }6 z$ E8 p" P* P5 j! K
}
5 j; E3 q7 A! J3 b0 j; c2 \我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|