|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问$ }* q5 c% L/ `' ^
1.。DSP解算出来的数据是存在哪里?
$ |6 }' G7 v8 @8 ]2 l( u) ~2.。在例程中有这段代码:
$ e; L3 j' c+ y# v6 v# Y4 u# z" ^ unsigned int int_id = 0;4 n" \2 i2 l9 U4 w/ l$ ?% _
; M: w- C# [% b // 确定中断源
6 Q& ?8 @% J: T) | r int_id = UARTIntStatus(SOC_UART_2_REGS);
- h0 j! C- O }8 c; n- F# l+ D% X
1 _+ M+ w% S; x6 ~/ H // 清除 UART2 系统中断- o9 [& @6 M7 U( g# t+ w
IntSystemStatusClear(SYS_INT_UARTINT2);6 l" O. P/ n+ v0 d# c2 T7 F B( ?+ L# ]) j
' @( r- |4 R) N" |; ?; f
// 发送中断9 o1 r4 U( \* K
if(UART_INTID_TX_EMPTY == int_id)
7 z6 v( c! C# B3 N+ {) ] {
0 O+ j) e+ Z0 k z7 x if(0 < length)8 m+ `' f$ i) h
{# U! B7 b& F- s
// 写一个字节到 THR- s: k8 Z; [' c( m, A" K$ }$ V
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);& ?0 Q3 H e' d7 x' U2 N3 U4 C4 ?
length--;
2 ?" I6 \4 G8 V count++;( i: \! ^* b/ |+ l
}
9 F! M/ ~+ b8 T0 d" r if(0 == length)! }9 I5 o7 x+ R# |; p& V+ m" {+ Q, r9 j
{) Y0 ^) K+ s) @% X2 J4 y
// 禁用发送中断
0 m9 l: @/ {5 a% I- s% ?+ \ UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
9 b" i% i" ~& x4 ~5 Q }0 y9 I0 i$ W$ E6 R! t) e
}
! Z6 i1 x" y6 C0 C) u6 D0 L, Z+ S我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|