|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
+ O7 j2 h! b5 B3 Z2 D) {1.。DSP解算出来的数据是存在哪里?4 c* X* ]- v P9 _: m u7 W4 J7 K1 [
2.。在例程中有这段代码:4 I+ d' [) T7 R# J- k
unsigned int int_id = 0;( {4 p" t% N3 Q* k+ ?# |' I* U
" x8 j2 p3 o5 e6 U' S% ] // 确定中断源
( F$ b. A9 D6 Q( A( _' ~* A int_id = UARTIntStatus(SOC_UART_2_REGS);6 |2 q9 t; b9 H* h; @+ c: Y
" F! K7 `9 }4 Y3 v) e) @
// 清除 UART2 系统中断
$ y$ y4 ]1 Y: D1 f1 x IntSystemStatusClear(SYS_INT_UARTINT2);
1 ~2 X' s v% N! K/ H$ C
* L0 x* h) }+ z% H // 发送中断
8 r9 p: s( T( X; x9 Z2 A if(UART_INTID_TX_EMPTY == int_id)0 Q) o% I/ l1 A" g3 R8 y+ h
{% L& M3 g1 ~' }
if(0 < length)
9 W* |8 q1 r1 p0 R& q }& C {5 B. U2 g. f& i* R$ F
// 写一个字节到 THR" P5 b Q$ \( V$ r% R
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
9 I9 e! R" V1 L; a. W9 ^0 w1 N length--;: D" V( X/ {; z8 O0 g. ?
count++;6 t) ^+ c! w& c+ n% L$ N
}
8 c% ~( c* B7 y U" [: G: ` if(0 == length)) O+ d" @* q0 ]+ q& g
{
& G* q# W/ I! L( M# c- U$ S7 w4 I // 禁用发送中断
) ]2 J7 H+ [, @' R: G UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);2 w/ w0 U$ _1 [# ]
}
: a1 Q. z3 a8 y& X% u }
8 g/ `( Z9 q% M" w3 ]9 Q. B- K我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|