|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
$ y- J2 Y6 t! |1.。DSP解算出来的数据是存在哪里?
! q' w! G( k! n. s! E2.。在例程中有这段代码:
. f' F5 h! J8 ~5 s/ ?/ F unsigned int int_id = 0;
! d+ c# P+ i0 r: B- v; R) c: _9 x( l0 z: S0 r4 G
// 确定中断源
/ D6 M) D. Z9 S) T int_id = UARTIntStatus(SOC_UART_2_REGS);
) R0 I/ T( O1 r7 O/ B: n! U$ ^' V
// 清除 UART2 系统中断7 b. F9 ^7 ^' m, u" ?
IntSystemStatusClear(SYS_INT_UARTINT2);7 y* \6 U4 X& r* F4 I& q0 b# I
( t+ E1 f4 C. C" b2 H- n
// 发送中断$ M0 C: {/ O% e I1 l5 r$ Y
if(UART_INTID_TX_EMPTY == int_id)2 T! G8 t4 L/ T$ m4 A' U* f, V7 U
{2 d6 w; y- n, T1 @6 g5 z
if(0 < length)$ M# B, P; t# ~7 h5 t5 y
{' p: k6 x; C- M5 r! t/ |0 b* f
// 写一个字节到 THR
6 j0 R- s( O/ G9 S UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
3 ^! [, \! h+ P+ `. j9 R length--;
& H2 x2 o. f+ C, o- ~. {1 ?- i count++;
# E& v9 H' v# E7 @9 K- @2 ] }
6 Y: S6 Y6 I$ {, F% M if(0 == length)
, a! f1 H2 ^% A$ a) } {
+ `2 R$ G1 b# Q // 禁用发送中断
$ W& z- G( r0 J+ x" ?; w; T4 [ UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
1 T3 U! F% a9 P, c6 ?7 e6 o7 Q. ^7 R }
2 a0 u- h& e* _' G9 G }
, p) J% @* r6 T0 m; X! h我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|