|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问, Z2 x# M4 ^% ~% K4 B0 t
1.。DSP解算出来的数据是存在哪里?
6 _ |% k0 h8 y2.。在例程中有这段代码:
8 y3 p/ p& z5 T3 @% R: Z! t unsigned int int_id = 0;
- o2 ~+ ~6 q0 y/ g( r. z7 T3 e
2 Y( x" i7 G; a9 J& g // 确定中断源" J( M8 \' D8 O V/ Z% s ]
int_id = UARTIntStatus(SOC_UART_2_REGS);
+ ^, B7 I/ c9 w6 ~- Q- H$ H% s9 `- }3 b; n
// 清除 UART2 系统中断; F5 q: ~3 K0 [" h: S" ^7 p7 g
IntSystemStatusClear(SYS_INT_UARTINT2);
3 C4 X/ h v: U r* r- o8 i- E) M! d0 f$ p
// 发送中断
* c1 D9 K' l+ k t if(UART_INTID_TX_EMPTY == int_id)0 [- g( j. D# ^; Z
{
1 W2 j2 u# ?4 C; P6 t) V& Z3 ~, t if(0 < length) Y/ b9 v* [+ \" w3 k6 a
{
, r% e8 N9 H6 _ // 写一个字节到 THR
! S/ J) N/ F2 P+ S, v t& J UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);# n* y! z5 n% a/ z2 t1 n
length--;* w, J3 E3 ~) J; ]" C; D
count++;: T1 B% t& ]+ C9 r0 g2 q
}
5 Z R5 L4 Z6 T if(0 == length)0 C7 A5 N# d; ]; h; T* A
{% U4 H7 C& P' W5 }
// 禁用发送中断
- n; i& h4 |/ ^2 p9 J UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
% z6 i4 B* D, e. I7 q }/ S1 H; u$ ^$ T- Q0 l2 R l, g2 D
}
- b v1 j% ?: Q* r8 Q$ T我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|