|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问, s% T" X& I" w) r* c7 n' G
1.。DSP解算出来的数据是存在哪里?7 `, b% L' N' J3 b0 G
2.。在例程中有这段代码:4 @) m$ @- g! x$ [1 m, _9 @
unsigned int int_id = 0;
3 k, K0 `2 }* C! N, F. n2 n) }
7 T) L6 t$ ^5 c! h" U! [& T // 确定中断源
5 e+ E5 O. D7 h5 x% b. V int_id = UARTIntStatus(SOC_UART_2_REGS);' n9 G) Q5 }8 x' p! f( S' q
+ Y8 ~5 c, p6 m4 w // 清除 UART2 系统中断
1 Z; j% O8 V8 k P' I7 O9 c IntSystemStatusClear(SYS_INT_UARTINT2);
7 v5 G$ A/ Y, [. o& `/ N2 x" b6 k- x# g! G
// 发送中断" M5 l5 m; _- n) M9 Z3 _/ ^: V: H8 ?( W
if(UART_INTID_TX_EMPTY == int_id)/ r* I4 c9 y* ~* D. o6 U
{
, Y) z1 b/ a& P+ Z) L if(0 < length)
, F' P' A. Y* u5 M8 C! j8 |; h {
1 g5 b- { C9 t2 n J# w9 y6 g // 写一个字节到 THR
* f) _. X/ W8 W5 J; f7 Z+ C UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]); t1 _: ?7 P# X+ s1 e" f
length--;4 o- p8 ~- \% q: U
count++;
/ r5 E6 v+ O/ N% I% `) I# L }9 J d. d# G) K3 g
if(0 == length)
, E& ^; j$ r5 E9 U2 a- _ {0 ~8 E \9 j- f% A/ [: U
// 禁用发送中断( e1 k% g ]4 O- N3 f! A
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
2 y4 w. c$ f) y3 f. x }
5 P! W4 d, l; V6 E }3 t( |# d8 j# x9 b B* M1 m: X
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|