|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
+ [- }! o' _: E1.。DSP解算出来的数据是存在哪里?
* r4 S! F5 s4 ]2.。在例程中有这段代码:
" _6 _7 o: k3 K6 [, b' e unsigned int int_id = 0;
" ?) E4 p8 A+ g2 n9 u1 R7 ]. ~4 Y* r/ b% e; Z0 [
// 确定中断源
l5 J; A2 Z: O int_id = UARTIntStatus(SOC_UART_2_REGS);
" Z" G- A" l" A/ @7 I0 u/ D2 _: ]2 ^: `9 U7 E* y
// 清除 UART2 系统中断
3 l9 T: H0 j" Q( H f- J Y IntSystemStatusClear(SYS_INT_UARTINT2);" t& _! L7 d/ G9 V" D
# A2 l6 G+ ]& D, w5 ~7 m# g
// 发送中断 @- O& Q( f& ]" y" P1 [
if(UART_INTID_TX_EMPTY == int_id)
; T$ \: R: a$ `8 h3 o7 q1 C {0 p* c+ i) ~& W+ J5 s
if(0 < length)% m3 A6 c( B% s+ @0 ]# @( N1 H
{
" z' A! y8 g% P9 _! W& _ r% \ // 写一个字节到 THR% s3 N4 |3 @5 N2 \2 {- _+ k
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
2 v, e5 {- u: C- h7 ] `/ { length--;
$ K3 F6 `' O! I) n count++;8 _, m9 l0 u- o8 ^1 b; ~% [
}+ {5 V; }, Q; b S% p+ m$ T2 Y/ {
if(0 == length)
/ P# n2 g/ N% Y! i! N {5 a! E& Y6 f6 c6 Y m# ]
// 禁用发送中断
, O: J6 Q* q7 m% ~3 U- H0 d4 K F* \" q UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);# u- n7 G0 `: p1 i
}
9 f$ P8 l7 E. I p6 y/ J1 v }$ @* n# f+ x, ` \6 K8 ]- E3 ?
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|