|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
1 @2 ~- {& g# J' ~. `' D6 z5 |) S1.。DSP解算出来的数据是存在哪里?5 M8 L( x T" ?/ J6 U' R1 Q# h! ~ o
2.。在例程中有这段代码:( g: h: C0 Z$ x# _) ^4 L" u
unsigned int int_id = 0;: b* h4 W* |3 @5 i# x8 ?; m$ C
, T# G; T0 M* f% R# m1 k) X, s& N% y
// 确定中断源" i) u( |! l1 `' ~5 x
int_id = UARTIntStatus(SOC_UART_2_REGS);
* H2 p! X. Y0 G/ w; n
/ l7 S4 z5 r9 q* ~- m e // 清除 UART2 系统中断
# u0 c- {9 ~ v+ s! u- d* \ IntSystemStatusClear(SYS_INT_UARTINT2);; s% e0 J6 r) D2 }7 f
' x! w8 }( L) |: C. j5 R( j( `
// 发送中断5 Z4 o! W. f) D" Z
if(UART_INTID_TX_EMPTY == int_id), C8 n5 O. T6 g& W
{
. o: ]; z d9 M if(0 < length)
* l" \- B8 W- u5 i- W4 [9 S {
h9 ~ A* c$ p4 ^, G- A // 写一个字节到 THR3 ]9 h4 f; k( v4 N& ~
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);) z' ]& K+ r9 L: j8 R$ k3 G
length--;
. w% R3 _8 u7 O+ l/ ]- V6 O. c count++;
+ i1 L$ P* g" J7 |8 }9 ~9 t8 ~6 E }
( d: w4 X) y! d" J8 x if(0 == length)
& u6 [9 g; W6 Z {
2 c3 `1 U/ _: c9 d7 |% x // 禁用发送中断% H) d3 ~2 p# p/ r2 \
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);5 U7 O) |8 Z- j5 Z5 _* O7 V N
}$ N5 Y+ w& e) V# Q
}4 x7 Y. N# D% B6 R& v
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|