|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
0 V# a- `' x$ Y$ i( t" @, z1.。DSP解算出来的数据是存在哪里?
$ i% a2 n4 S! F g; z7 A, j! d2.。在例程中有这段代码:
5 L( f3 j2 i2 r( s5 N3 b unsigned int int_id = 0;
) i9 K& o/ _/ v( Y& w! V
: y8 h& H; `! z( q7 J G // 确定中断源
6 Z" Z/ x/ j% }+ q* j, y8 _ int_id = UARTIntStatus(SOC_UART_2_REGS);
( d. b) j2 b8 r+ V$ ?( Q ^. n. |5 ]' K8 F
// 清除 UART2 系统中断% q. e6 W# ?) W$ I- ^- V
IntSystemStatusClear(SYS_INT_UARTINT2);% V) |4 b- O5 C/ p
! ?( J2 g/ p: K0 h$ ` // 发送中断
( \% `) ?# `: Y3 n6 X if(UART_INTID_TX_EMPTY == int_id)
, c1 h4 T2 R5 |4 z) o( x {
. C* e( _& X2 T1 e; P8 R, B if(0 < length)
8 D' A. ]8 B" u! J {; M d# |" p, K3 @- E" {" H
// 写一个字节到 THR6 o. x: t2 u* p5 T
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
. y$ {6 g% l( R# B3 ]) Q, j length--;
* b' H% D2 }7 c4 {8 I count++;! V- h0 Y2 S* s% G8 `) f
}
- i' i& j5 o; o u if(0 == length)
" f: L5 u k' e+ G. V: s {
; z6 a5 l5 U( z( A8 @0 c, M5 u // 禁用发送中断3 o, o3 o( X( i' u% e, r' {
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
4 n3 p* \& Q2 D, I9 D }
4 h7 T1 J. h- q2 I) j }
: g6 A! l: S& [. s- n; O; ]我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|