|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问/ E- A8 A p7 f) O
1.。DSP解算出来的数据是存在哪里?
( B t4 h; C9 m2 `6 e, O2 h6 X2 }2.。在例程中有这段代码:
( o0 k& G+ k" z unsigned int int_id = 0;
& r1 ~+ y$ `9 U3 ]! s4 E( L
( U% ~/ u) b9 @6 ] // 确定中断源! H) c; |, }7 e! G% R( w
int_id = UARTIntStatus(SOC_UART_2_REGS);
! c# Q" G) q. u$ i& P8 w: l- @6 x1 z0 [6 A2 N
// 清除 UART2 系统中断. J5 s6 z: y5 f! b" ^7 \
IntSystemStatusClear(SYS_INT_UARTINT2);
" e+ a6 S0 x3 W, g3 @* M& U: z0 q
; V' V k. z8 S, ~( g/ @ // 发送中断0 y* Y7 A0 A9 T& W0 W# X, @0 c
if(UART_INTID_TX_EMPTY == int_id)( s2 ~6 K0 u6 n* ]* s1 d
{
' F1 u: G+ i- o, a; C if(0 < length)( n/ M* f7 [$ C0 H4 J! d7 P- K. E
{
' z+ S; ~0 S) J8 E. _* \ // 写一个字节到 THR$ ]( O* c3 \# ~" [( F* ^
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);. P* G5 N# ` _! E
length--;
, A" ]9 n: c" P: M. f count++;, ?0 d* l# _# p- |' O
}
( [ D6 F, {' f- a/ v; N if(0 == length)
1 M# K( q5 W/ B) N* {! r: n6 v. v {% a* S6 p7 }+ e3 ]- @, d$ T4 o# C$ N* P
// 禁用发送中断6 p- d+ `+ [% X3 K2 q; b
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);0 L5 ]# T+ D6 ?
}5 S1 k7 T5 r* c7 D6 ]& v
}6 O3 i& n- E- l l8 r
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|