|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问" ]* X+ x% B* d6 T+ {7 ^# w
1.。DSP解算出来的数据是存在哪里?: T, p5 g! j Q2 j
2.。在例程中有这段代码:
" {/ g5 D# ]. B unsigned int int_id = 0;
7 R3 [, O4 Y$ D1 |* l( U5 p/ M- p* {- m6 @; V6 t
// 确定中断源
! X" j( a9 P3 ]* G! \( Z int_id = UARTIntStatus(SOC_UART_2_REGS);. b \1 Z1 N# \% _6 y$ c
! _5 u( {/ e2 G, K2 Y
// 清除 UART2 系统中断
7 ?: Q, J5 d5 v0 A& X IntSystemStatusClear(SYS_INT_UARTINT2);3 ^' y* r( Z4 W4 k+ k! R+ t
7 O- A" G. c1 L, R9 K
// 发送中断8 {& t5 f1 T% A. A2 ~
if(UART_INTID_TX_EMPTY == int_id)0 i( Z+ p* y- F, t& q! O7 l
{
4 M$ ?7 x9 d8 {0 `' B, Z if(0 < length)
! p* u K3 R8 N! G( t+ Q {
V; a: M7 ?4 O" F% k // 写一个字节到 THR. V. Z4 [0 _" _4 O @8 B. r
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);9 C" T/ H+ v- _( Y+ K2 U
length--;
( F% A2 T) _1 X4 { count++;
7 w0 ]6 ~% b7 R" b5 z }- i" W" n& w- v3 Z3 x8 C% L# ^' q
if(0 == length)
2 V8 [( g; H1 b+ t2 H1 ?+ W3 ]% s) i {5 t! O4 s' f. h; \) ]7 ?
// 禁用发送中断2 B3 f" M4 }$ n Y+ z
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
; H; C5 M" E: G6 B }) [8 i, `2 b4 o# n
}
/ W7 x) p6 z5 K9 Z" Z" w2 s j我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|