|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问& U b* Y, U7 K
1.。DSP解算出来的数据是存在哪里?
* ?; g$ y" \: s7 \7 x, m1 Z) h2.。在例程中有这段代码:
/ G+ j, n$ m3 |' f) O unsigned int int_id = 0;
3 \5 l$ q! s7 f- a! ]3 i: E+ L; C' l J5 s( J
// 确定中断源
, J7 s+ I: |* a( m+ i int_id = UARTIntStatus(SOC_UART_2_REGS);
0 x o) M6 X+ v. o, ~" Z8 D( ^% _( f1 v' q D
// 清除 UART2 系统中断7 E8 f# E& G1 Q% d1 f7 L
IntSystemStatusClear(SYS_INT_UARTINT2);; \' G: y( o( `; J8 L
# |8 y' _) B$ D3 H/ d/ G* m' H+ h // 发送中断
- v) }7 n' [- R6 G. Q0 l if(UART_INTID_TX_EMPTY == int_id)1 M) ~) o- x7 s6 v6 V& H
{9 _: Z4 q( `7 A0 v; s
if(0 < length)& h# ^6 T& D' B! [2 H# F$ @4 D* g
{) `! ~" k+ C# `0 o
// 写一个字节到 THR
7 K( M+ j' R1 }: D* X8 ~) _/ y UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
5 o, J7 a$ S" p1 L length--;1 l9 f5 o) g; ^6 k! @7 b) `
count++;) B E2 [5 |) `" o$ b. O2 [+ L( @
}; b2 y# ?/ e8 a% E# X3 v, \
if(0 == length)3 W1 C, Q; S" Z: I
{
6 p+ w' Z1 m. E4 ?" c // 禁用发送中断
2 E: [7 V6 D U9 O UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);) r+ m1 ~! w+ K# a" O/ E# `
}
; J7 a) k* Q+ g }
- t! A, V7 y2 f! o我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|