|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
% e- X, |8 k) c' }8 C: {3 I: K- W* v1.。DSP解算出来的数据是存在哪里?
, B# _9 r+ u0 c/ Z2.。在例程中有这段代码:
* {, r* Z* K- j, _ unsigned int int_id = 0;
5 O; p& c) V" u' u7 F
9 W; d% R9 C1 e0 J# S% ` // 确定中断源
& W$ _5 U2 j9 R$ V& | int_id = UARTIntStatus(SOC_UART_2_REGS);8 B3 J) K) z2 L
" j# W# m+ _* ~$ l+ `
// 清除 UART2 系统中断
- S! ?9 ?- H9 e4 h IntSystemStatusClear(SYS_INT_UARTINT2);
/ w2 n, ^2 _& L' n/ ?1 K. A
8 h: x* a6 N- X# ?! e // 发送中断
" c0 K L+ b# u if(UART_INTID_TX_EMPTY == int_id)2 G9 M9 `% T' b+ w+ h& G
{
4 U c$ I" o | if(0 < length)
! L0 H% U7 y8 W! C& O I4 x { {! u* O1 ~) s# R
// 写一个字节到 THR: l" I7 e/ J! ~; e
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
5 b' `! t2 X4 q7 r- z9 }! S5 X length--;
# f( |8 f5 w' {( K% G count++;5 ^; i& f1 K6 z% R F
}
. x2 x' }( u; ~/ k1 Q5 M/ O if(0 == length)) ] W# v/ A$ J+ R/ v6 j a
{
4 e! y# c$ X u0 K // 禁用发送中断# N2 J7 L- p4 Q- i& ]
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);/ b: Y' ~! n' @0 b/ Z% _
}
9 f G3 X) T7 a4 x }2 ~' ]& b0 Z2 L( X
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|