|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问; M+ b: p( S( C' T
1.。DSP解算出来的数据是存在哪里?
: j9 t) y6 X) `, v1 n1 r7 g5 P2.。在例程中有这段代码:
2 @+ g0 x+ R9 E+ G8 v3 p4 ` unsigned int int_id = 0;
' i% {% N& o/ z( W* N0 [6 _. h1 v8 |" ]: h- o4 x: f' l4 ` n: e
// 确定中断源
. n) t# U7 k- C4 |, p int_id = UARTIntStatus(SOC_UART_2_REGS);+ r% s, N4 E* a1 ^# P9 c
* H% D" o0 |! I' z: R" E& N // 清除 UART2 系统中断) e* k: {( ^8 M2 u
IntSystemStatusClear(SYS_INT_UARTINT2);
& _" {- F- \1 X/ s, ]5 V
; ^- u4 b# P5 B2 s/ T // 发送中断
& B0 b8 b+ T$ u: n3 a/ \( K0 f5 Z if(UART_INTID_TX_EMPTY == int_id)
3 c. p2 ^, y, C. e H8 L- _: { {
' s/ R; V4 r: ]. ^ if(0 < length)! m4 _5 ~! X; U- l
{
) p/ A% p! g7 b // 写一个字节到 THR
7 s# k3 e1 m7 Y UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);& P1 H7 f$ @ a3 Q' z& r
length--;. T* Q& {9 P' T) i {8 X. {
count++;- T- V& j4 E8 X0 `9 O
}; a$ T+ M' x& K
if(0 == length)4 m) F: b* T/ y
{
' y5 H3 n- B4 U0 P# v$ I // 禁用发送中断* T5 A/ r! l" k2 r
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);9 q9 Y2 ]% t2 m$ A5 D
}
; D; W7 ?& I" k8 y3 U- E6 g+ ] }
0 s: y; Q7 t) K我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|