|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
4 r: h$ L7 N- {6 O) F; B; n; r0 j7 X1.。DSP解算出来的数据是存在哪里?
$ ?5 n/ k, I3 ?2.。在例程中有这段代码:
$ B! w' e# B& }& ?$ H unsigned int int_id = 0;' ]" A3 O% M7 T% r4 p
j) z) J7 z+ G" I, ^8 P // 确定中断源
! ~2 v# m! I& q2 |1 v3 Z8 y int_id = UARTIntStatus(SOC_UART_2_REGS); B3 l; \3 a2 a& S1 f% L( H4 F7 d+ g' Z
: ?$ v8 x# J0 I" c+ V. Q // 清除 UART2 系统中断
/ O3 r2 S+ @# Y; H IntSystemStatusClear(SYS_INT_UARTINT2);4 i: _& D3 b+ S) |3 n f
% S1 ]7 M! y% r( D! Z
// 发送中断. [& h4 O0 Y7 V ~4 t) \# u
if(UART_INTID_TX_EMPTY == int_id)
1 z. B' p! j6 I0 \2 L2 \ {4 S- d4 t$ p4 ~! O. S7 f( _
if(0 < length)
4 R( E, s: u) a3 ? {
% V7 p# a" k: t( A // 写一个字节到 THR
2 E$ _ v$ f' x4 J' V UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
* a$ p& T2 P' j% _" Q$ Q length--;
6 B5 S9 r2 D) _. f$ t2 b/ v count++;
3 T& Y. L0 S/ P# h& Z( o }6 h) z, D! w. R- R6 \1 e% v* ~
if(0 == length)4 D* i: C( X" ^# g+ B
{4 h$ Q% W7 O/ w: d7 } b# M' J4 W
// 禁用发送中断/ E6 [* t: W& b, Z- d4 j
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);/ V/ x+ i ^6 ~! s' c
}
. z% e0 i9 E5 }* d$ u( d% H7 \0 | }" c0 n U5 i, e% J
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|