|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问) w- t1 r* Z" u9 d- a3 i, _
1.。DSP解算出来的数据是存在哪里?
# e+ v M% _0 U; Q$ m j2.。在例程中有这段代码:$ J l8 X3 _+ e# S, n+ M: w* P$ M8 B3 }
unsigned int int_id = 0;
& }( A, c) @* r
7 N, |0 Z8 z5 | h // 确定中断源* R) T z% e4 t1 X9 D
int_id = UARTIntStatus(SOC_UART_2_REGS);
. Y, N8 p$ M1 C$ P: y) ]! H7 M3 h4 Q0 W2 p2 t/ ^+ o. V: A
// 清除 UART2 系统中断: k, Z0 q! H. k# h+ V7 g
IntSystemStatusClear(SYS_INT_UARTINT2); l6 P3 y& b% d% h8 r
$ z) \$ B. P! v& Z9 z @/ T // 发送中断( Y/ z, P/ K0 f- R& G) x
if(UART_INTID_TX_EMPTY == int_id); r0 E+ X+ v* b6 m9 w2 @
{
" T( Q* g; l5 i: S) e; j* Z if(0 < length)
6 g% @3 { X) [& [2 g, h8 N% U {
) C6 H. |4 p% D0 g6 n7 I // 写一个字节到 THR
' c, C* }1 E& N( L- k% P UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);- W- r8 E- |1 _4 e' O
length--;/ `3 _ t+ }; J2 i: [
count++;4 ~; |' `, n9 V) C
}
- T$ Z/ E1 S8 k. e! W" a% t+ n& w! R if(0 == length)
( \# l" ]" k# Y) x* a {
% k3 y' J; \% \4 {- Z. c( w6 U6 B# y7 K // 禁用发送中断- ]* D+ x' J! ?
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);4 i G, H, K& n& L
}' `5 w+ y3 ?* ]/ N- r& J$ k
}" O4 @* ~. s: o" O
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|