|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问" b" _9 i+ m9 V
1.。DSP解算出来的数据是存在哪里?
9 n8 o: A; W- s- j+ n2.。在例程中有这段代码:
1 A' S- _# R I& Y8 L unsigned int int_id = 0;8 S8 G7 R* ]. D: b5 Z
+ d1 B* P2 K& H // 确定中断源' @" D3 L3 J" p3 i! N: i
int_id = UARTIntStatus(SOC_UART_2_REGS);
: @: j8 {. e- P5 D4 K Z: y4 m
; d+ k8 |: [8 R0 C8 M // 清除 UART2 系统中断
4 D$ u" Y) O' Z$ m- r$ d2 U5 ~ IntSystemStatusClear(SYS_INT_UARTINT2);
' U {7 F) Y. s! _4 ^- c _6 ~# X' p0 @* B7 D4 s) `! \7 j* f
// 发送中断
4 ~2 J$ x; U0 h+ g8 e. k/ H if(UART_INTID_TX_EMPTY == int_id)
# @5 y7 ]0 _+ }: W+ J' k {" |) u4 S, M5 d9 p% u9 n
if(0 < length)) y5 Z! e% f. Y u9 r( x7 {2 I8 B4 C; y
{
# d% S* ^0 k H) c- Q. M6 u // 写一个字节到 THR
& ~' k1 _$ D9 W# S/ Y: y- K! Z" N UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
' u4 t* f6 \' c. R( v8 n length--;. r2 M4 v! G7 i A& ]& B
count++;
( {. u3 B: U& s$ } f$ Z9 o }
+ T9 O+ o6 l3 V' M7 ]2 y+ ~1 V+ D if(0 == length)' G& i/ t( h( r# F
{" \% t- l9 k# O
// 禁用发送中断
. t, a$ A2 Q' z2 Z4 p$ S UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);. ~) M1 i# l R0 {4 h! a" z
}& f- H9 m- X% r7 z3 h/ U
}
# m0 A) ]7 k/ C: l' y/ b$ J我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|