|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
. s+ T) E9 i: @2 ?8 _' f5 H& j1.。DSP解算出来的数据是存在哪里?
3 ^7 y) i; ~/ g" e, e2 [% ]2.。在例程中有这段代码:
+ v2 D1 O: C2 Q unsigned int int_id = 0;
4 M) `5 }9 f7 a" D) ~" e& F! i0 ]; z# ^
// 确定中断源
2 R6 F! |7 ?5 s( d; f6 S/ H4 x int_id = UARTIntStatus(SOC_UART_2_REGS);
2 U5 q: B6 ]. Z) X3 h7 L
3 i* |2 J" E* p4 r // 清除 UART2 系统中断' Q2 |- B% d: R! C& A$ I
IntSystemStatusClear(SYS_INT_UARTINT2);' C9 w; [% f* L: [: D m
; l& @3 K. f% U/ D( W, G7 ` // 发送中断$ i9 W/ R& Y! j! \: R: D
if(UART_INTID_TX_EMPTY == int_id)
+ Q" O4 e" s' L% M* g3 g b {
% g+ m) d/ U9 f' c if(0 < length)
! o- M9 _6 o, U3 t {
9 [9 j% V+ m9 y( k; B3 d // 写一个字节到 THR
# U, }) m4 K5 Y+ A* W( i/ W6 R0 f( r UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
. K! }; M! U% f6 X; R5 R8 I" {5 O length--;& U" c! e+ U5 N8 h9 k; _
count++;. c2 _8 H' X: X( K! z0 H
}
$ k5 m8 W. ^ z/ B, b+ z if(0 == length), }0 c( K9 i: p( m; }* t
{
- Z1 o) O+ [* ?0 [- V+ h // 禁用发送中断) C+ n0 ~( t: ]0 L4 k ^8 R* a/ @
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
7 E* M* F( l2 j2 |! V" `0 } }
+ Z3 K. Q: }+ T4 k+ u1 } }
+ O; k4 B. h8 e6 Q N9 V; n3 [) x v我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|