|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问2 V4 h [" C! x7 ?1 R! ^2 x- ^
1.。DSP解算出来的数据是存在哪里?
' w& s& v' o, i ^" n# s' `2.。在例程中有这段代码:! }- E, x& X2 I4 n# |/ L. Y
unsigned int int_id = 0;
! N3 j- m1 l6 {" A) ?1 a
! y$ s3 e* G7 D1 T* P5 | // 确定中断源
0 N) C& {5 K2 E' o( t9 A' @* Y int_id = UARTIntStatus(SOC_UART_2_REGS);
' c6 s" c, o: v: g. U* U1 g4 R! { ?! B6 T5 w
// 清除 UART2 系统中断4 M- V/ J- O6 p$ z
IntSystemStatusClear(SYS_INT_UARTINT2);7 b/ b! Q( r5 ?6 m. D
5 j$ v) U) z6 [4 W // 发送中断3 |. S! R' }7 W$ K
if(UART_INTID_TX_EMPTY == int_id)
& T8 r Q7 @; O. ] {( ?; q* n9 N4 W4 e$ | R- x6 E
if(0 < length)5 Y' \. a* t# F0 r8 z# |3 T
{1 p/ ~/ }5 V' V
// 写一个字节到 THR( k! j" U$ ^% Q& e# A1 g/ U6 c; ?
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
0 [2 z' w8 g2 A% m length--;
- Z% r% y% b( n3 ]% B2 _! ^( m6 o, u count++;% U3 k0 @4 @$ |/ ]' u; r) l" c/ d
}
$ i e& k( u ~9 j" N1 h if(0 == length)( q* Z- M5 h& l6 O: o
{
, r7 k! Y' z) A+ W" m5 R8 R // 禁用发送中断
! [/ }; ~- g g9 D) ~ UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
1 k( {0 f' H6 Y# h7 i# h4 o' T r }2 L' Z( Y+ w% \+ ]) h+ B! I
}& {( ^7 |7 A" A/ L* S2 g U6 y' D% y8 H
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|