|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
: B7 C" R+ O6 u& j" x1.。DSP解算出来的数据是存在哪里?
$ t C' D8 _' h" u5 f4 x+ Y2.。在例程中有这段代码:
, d& |6 `$ S" y/ {, ?/ Q unsigned int int_id = 0;
0 o) h3 {$ T+ m1 ~% W4 W$ @& X' ?7 _1 r: @
// 确定中断源
* h4 X) Q: t2 {1 _ int_id = UARTIntStatus(SOC_UART_2_REGS);% J7 ^0 s( j4 E! O
" O" _9 G% D, S8 H! o // 清除 UART2 系统中断% K6 l/ O2 s% H' ^+ X
IntSystemStatusClear(SYS_INT_UARTINT2);; V8 g: Z5 l& F1 ~$ S# P
( p; h) N2 P1 D0 x/ ]9 L // 发送中断 N% U! E& c' N0 O( ]; E
if(UART_INTID_TX_EMPTY == int_id)) a) G+ g* j O6 b3 |2 e1 G
{
; G- u1 d- N6 \* |) F if(0 < length)
* u1 [9 U* b* c; Q4 P- C. O {) v" R3 U0 U( F
// 写一个字节到 THR
( Z0 T( H: m G; ^% q* ? UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);, } Z# X5 k. Q7 h8 O* |% I
length--;/ R) H- E9 k1 A7 H5 `& q8 ]
count++;
3 {+ P3 R0 o4 ~3 L) L, i }. X3 }3 K8 z6 v, A( S
if(0 == length); G r, H2 r+ k8 Y: O( l2 F8 B; j, X
{7 d* m' y ]' c. A$ w8 v
// 禁用发送中断
) b% i8 V' ]8 e1 s+ N. b' u UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
5 Q- R1 z+ s! _8 o( f- E }
5 C) Y$ ^. f" I }
# d& [( a5 ?/ x4 r5 j* _我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|