|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问& C( u3 j+ U! n1 R2 w2 @
1.。DSP解算出来的数据是存在哪里?
5 x/ ]8 _! @8 L# ^9 t2.。在例程中有这段代码:, t2 U; J! E8 b5 ~) a, k' @% z/ G9 P
unsigned int int_id = 0;* i( O; h; b8 U1 h8 h
! y4 Z" P- \, c3 B4 M; @- y+ d
// 确定中断源
& y' s% x$ m/ j L5 F int_id = UARTIntStatus(SOC_UART_2_REGS);
% k2 g% e7 ~1 V2 `2 \
! ^: v: M; U `& Y6 w4 a# b // 清除 UART2 系统中断
1 _4 C' t% @( D$ ]3 x5 v IntSystemStatusClear(SYS_INT_UARTINT2);
) b7 v4 _, `8 k" y
* N# o; n& s; R! Y // 发送中断/ I) C# c- o2 N. t" t
if(UART_INTID_TX_EMPTY == int_id), _$ t: ]' v. D1 q+ D
{
1 c* a. u$ }: p& U1 c( y if(0 < length). ^3 ?- X0 S* X" L3 J4 p, ?
{! D- @9 u. D, Q$ e7 O. [
// 写一个字节到 THR/ {! R& J2 W6 ?% ~
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
, G" l; u j9 K0 o9 ~* P length--;
1 P4 _) ?, I2 ^6 u2 G count++;
8 D+ q5 J6 G" c P" F. N6 g }
" t, g% M, _' ^ if(0 == length)
6 J, u3 I& T' \1 q {. W6 S7 R3 c# E% A$ M/ h' m
// 禁用发送中断! x1 \+ X' o9 W) k+ I& b: p: x
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);2 {0 v$ f) q9 l* s& U
}3 a: w0 y7 G$ X+ o
}# {1 u; h, a- f. x$ O/ g
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|