|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
" i6 Y! }" F; y' G; P$ I, B* {1.。DSP解算出来的数据是存在哪里?
8 j8 E. v3 G4 D+ s& b2.。在例程中有这段代码:
( z1 V! e9 p* G% P2 X8 N unsigned int int_id = 0;
: I4 C/ u4 J. B7 W6 V* A/ [6 J- q: o: }; N# q4 @- e
// 确定中断源
% ~/ Q1 m7 q- R$ m( P6 a1 Q" R2 J int_id = UARTIntStatus(SOC_UART_2_REGS); v, Y }# H$ x2 M& Z' |6 [; J7 [
! P( T" m" p) ?: e0 V( N+ ]' v // 清除 UART2 系统中断' ]$ w8 T' C% Z9 a; e; [3 q
IntSystemStatusClear(SYS_INT_UARTINT2);# K# d# f1 F1 A. h
9 `8 ?/ @9 j1 Z/ B8 V: g
// 发送中断9 c( x" ^' F' {6 s& q2 I( j
if(UART_INTID_TX_EMPTY == int_id)5 }& I- \3 j% E W! p
{3 w! ^# w# Q! S& g& M/ x
if(0 < length)" A! u9 \" `: V6 U9 |
{
7 k7 G* G" O$ K, O // 写一个字节到 THR6 |1 d7 r- [+ h! E0 `
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
# {* J" r/ x' p" z* N2 |+ ` length--;) C2 d7 I6 D' a: F- U5 `
count++;0 {% r* G( E- C$ F: D/ }: q
}. J4 J R9 v Z
if(0 == length)
& R/ r7 p9 B- n3 P( b {
' b* s6 ]( ~+ ^ L" | // 禁用发送中断
& x4 D$ H' h) Q( X/ U UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);$ S- d7 y" @& T! x: P! ^
}( m8 @5 F& f- I$ h0 |7 ]
}
2 p* A! R+ B/ E* V' k我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|