|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
" ~# H' o& Z& t& f( n7 U; ]1.。DSP解算出来的数据是存在哪里?
* t Q C7 _ A4 {& c1 o' E2.。在例程中有这段代码:8 u( o3 W$ f% r( H! N
unsigned int int_id = 0;, V4 c! R9 N: |9 U: }, F
1 z6 B$ X$ Y* B // 确定中断源
7 j' f% s* [* O0 s& r4 }' b& _ int_id = UARTIntStatus(SOC_UART_2_REGS);
1 g* ?4 [* W1 a1 k1 X: S% }0 \1 `
// 清除 UART2 系统中断
; B; s/ P- a" m; f7 Q4 k7 J) C7 v IntSystemStatusClear(SYS_INT_UARTINT2);2 y$ M9 w( Q( ^3 V1 z, c
& O2 D0 R! T" d; C+ @% X( V1 b: B
// 发送中断
3 f) v+ S* r6 ~ if(UART_INTID_TX_EMPTY == int_id)
! J' s9 V6 }) C% f {
3 G1 l, m% w8 z+ X! C if(0 < length)# n9 Y3 i( ^2 Q/ C' {9 t& g
{
9 V( I. ~/ R# T8 o" b: l // 写一个字节到 THR' A# t1 q4 g2 ]9 ^: Q
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
3 I4 Q4 }% U7 t% I3 W length--;. M% p' ?. U9 {0 q
count++;$ e4 J& |: _) [3 w' c* }
}
! p" T1 k9 L5 u. W: h& U: c* Y- h, C if(0 == length)5 B8 p' f3 o& D/ e0 C6 l, ]
{
5 `! E+ h, c0 N2 [4 w // 禁用发送中断
+ d5 F* ~& I5 J5 G. r& n UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
T3 I& J/ ]( m; q% G) u- G/ { }+ s0 d* s8 g# n/ T
}
, I2 B2 J* a% f) U! E9 E5 ]3 p我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|