|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问% j3 y8 C M- @9 A: X! N, J$ w
1.。DSP解算出来的数据是存在哪里?
9 o( }. y5 [/ C2.。在例程中有这段代码:4 ?3 o5 B* ?/ ^, m( }7 z
unsigned int int_id = 0;, S5 m; x* S9 {, O! h7 G% M- `. p
5 F3 k- }3 g0 m+ ]7 c
// 确定中断源$ M" @! [, z9 A+ ~2 [+ W
int_id = UARTIntStatus(SOC_UART_2_REGS);& {7 X% Q6 a$ V' x) B' \
- @ X% V7 @/ I' S) W( R
// 清除 UART2 系统中断
L& B" A! i2 S$ S- g IntSystemStatusClear(SYS_INT_UARTINT2);
) Z+ n$ ?2 V8 e+ T% _; L6 A+ H5 \# M, G4 c, d1 H5 i
// 发送中断) k$ L+ K/ Z/ ~/ p
if(UART_INTID_TX_EMPTY == int_id)" p' d! L6 l2 c- ?+ p; x
{
3 J6 {5 V$ c9 X9 [ if(0 < length)8 Z) `1 a8 h2 {) y6 j* x
{
. ]* l }4 N3 O# V5 I) ^0 }. P // 写一个字节到 THR! [* w. V$ e) {! J; n) v9 @
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);# T/ _0 I5 F7 L( x0 z) o
length--;0 ?' t3 }0 A, l- D* E
count++;
, t# q) D ^3 Q9 C A/ I a }
7 I; v' c# s8 \' Y" ` if(0 == length)
( e6 Z! ~7 ^" K {
) }+ u' u9 x5 I. z6 O // 禁用发送中断: w4 Z, _7 L7 t5 k
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);! i! O3 |" T2 j3 B
}! _! h% J0 {. G7 e
}- ]% C3 a; |0 `' I
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|