|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问 A7 |, P8 _( \' R8 t
1.。DSP解算出来的数据是存在哪里?
* `' ^* |3 x: \; C+ X4 b2.。在例程中有这段代码:
2 c7 p! |! J1 `; z9 y unsigned int int_id = 0;: e, S2 c2 Y( e& h) R
; R+ N6 l: N# v- t, K. L
// 确定中断源
" N2 \2 V0 m W$ ?! i* O5 i2 _* b/ P int_id = UARTIntStatus(SOC_UART_2_REGS);. w1 ?7 f) |( @! |( z% Y/ D* M# ~
3 {3 g" e- `* U. n& Z$ m( _' `' F // 清除 UART2 系统中断
8 N1 ~7 {. N& O. }' k IntSystemStatusClear(SYS_INT_UARTINT2);
9 m- Q# g4 {: a- v8 R8 p: g3 [4 d9 o* o2 r0 N
// 发送中断- z/ A1 P6 I0 i, H' r
if(UART_INTID_TX_EMPTY == int_id)' \1 n, X3 V: i& [
{9 x- v, C6 M* h |% k. a" l
if(0 < length)7 y6 h, p" f+ p4 t" ?) h% H
{4 V; b" ^" I+ s2 g0 M
// 写一个字节到 THR) @0 X7 {/ D6 q4 F% A5 m' h
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
+ }& i5 ?9 w/ ?. d: l; g length--;
7 y! f* u7 j) f count++;% K( F3 j) b& c5 e
}
3 C5 G+ d& S8 x* w. T/ f9 H! r if(0 == length)6 n3 S3 X! @5 g: Z' O. Y, l. r" A
{* }( Y1 ]5 s5 A5 W$ h+ k# n
// 禁用发送中断
. C9 x3 Y& ]& v- z UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
! ^& j+ L, B+ H. c }( p0 ~* t( }2 u
}3 N2 b$ p- F3 G/ b
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|