|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问% U' [5 y3 K$ A
1.。DSP解算出来的数据是存在哪里?/ T4 b& @1 T! w2 Q
2.。在例程中有这段代码:
0 T" |6 Y4 }# X' P, ~* ^" e) [! k unsigned int int_id = 0;1 C' y" k. ^9 U9 u0 [9 Z% I
5 w$ k+ W0 m. u6 N1 @" o" L
// 确定中断源
5 m/ x( p8 T" w* k int_id = UARTIntStatus(SOC_UART_2_REGS);
6 y; l2 n$ u0 r8 B/ C
0 [; A7 l! }5 h- c7 u# D+ u // 清除 UART2 系统中断
: |- h/ ~ u: h. Q- T$ W, H5 ] IntSystemStatusClear(SYS_INT_UARTINT2);
) y! t @( R/ p4 A; r3 w1 f1 Y6 j
// 发送中断
/ g3 K6 q% ?# K) q$ i j if(UART_INTID_TX_EMPTY == int_id)' h/ D8 \+ O5 O6 @/ W' }- M
{" P0 @1 l$ U1 i k. c- A) }
if(0 < length)
; ?7 h3 g# l" {/ m! s/ m {
Y" |: n" ^8 `4 ^ // 写一个字节到 THR5 {- k/ U7 ?, D8 t3 w3 n* t) e
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
0 F5 y+ x) u2 p& ^, J, |. g length--;% O' Y2 x8 w1 b# X
count++;0 H/ F! L* S' d6 L9 i9 J$ C
}; I9 C$ N# E; ~3 I6 g0 W% q0 V
if(0 == length)
% h [% B# k6 Y! {3 Z+ b {! }2 X4 N5 N9 a w& L
// 禁用发送中断; x% y9 P2 r/ g
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
1 y2 B# |" E R' u8 u4 n }
/ s3 X t7 X+ C1 q, ?. ^: B1 z) F }
* H, C5 x% X$ s. t我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|