|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问0 r/ E6 M: X( @( \2 \
1.。DSP解算出来的数据是存在哪里?
& d# m/ M6 e9 @: S$ f# g9 O2.。在例程中有这段代码:
; B- b/ U2 @; H" Z: w# S$ h unsigned int int_id = 0;: q8 d4 W$ G8 g$ s: b J
% F$ A* s t' ?7 T; `1 W! M
// 确定中断源8 G; F( ^. {' c" k9 ?4 S" s: W
int_id = UARTIntStatus(SOC_UART_2_REGS);
& u) a8 l7 F- k% ~% @0 L% e' {6 l1 O7 ]; a; |$ x
// 清除 UART2 系统中断
2 }* K# |* x/ D/ [( c9 ? IntSystemStatusClear(SYS_INT_UARTINT2);
$ T) g. x4 D3 S. \
- q, j: j8 Z5 c5 J3 N // 发送中断
: V2 ?) f6 @' q9 @1 k7 I7 y1 T- s7 p9 A if(UART_INTID_TX_EMPTY == int_id)6 }& }7 k/ f% ]2 i$ j0 u7 Y
{
1 a, m/ E; k( N+ ~* ` if(0 < length)
2 X2 E9 i; d8 O) Y% L. A* {, D {# K) E# o5 d6 S" _" y D/ ?
// 写一个字节到 THR
) [; J' h3 h) t! @" Y UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
; o0 u( c* Q) h( @ length--;
( k# [5 a- O; ~3 D. g6 I count++;
) p' D! m4 Z* E1 K) J8 ^ }6 C \8 A% m9 V
if(0 == length)5 z& `0 e7 B6 A4 i
{
" A! T9 F- G' l6 X+ K4 o" _7 n) p // 禁用发送中断1 C( k- t5 j! ^$ c
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);* l2 X! z0 ]' E' |/ f) n
}
, T8 ]4 L% {3 x2 f4 e }( z* f; r& y- x
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|