|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问( _" w5 f+ c$ d7 P3 e
1.。DSP解算出来的数据是存在哪里?
4 B$ a, G- U2 E5 o, l* N2.。在例程中有这段代码:1 N" R' T& E y$ y2 X
unsigned int int_id = 0;
1 T" G& @8 a5 P( A4 S' }. z1 |7 I {
// 确定中断源
+ D7 G1 @# z# \& c int_id = UARTIntStatus(SOC_UART_2_REGS);
, O( X- J/ Q) s
) H* M) k5 U1 f0 Q+ Q3 B // 清除 UART2 系统中断
( S8 ^/ H) X* h8 z5 `3 v IntSystemStatusClear(SYS_INT_UARTINT2);% i. n/ `* @* ?& Y& `; ]# U& p+ t
' }" P( m" b7 E. K9 a7 @7 ~ // 发送中断4 t/ W3 ?, i8 z% v( S& S1 b) C4 v
if(UART_INTID_TX_EMPTY == int_id)
; \* B9 ^( p2 ]! l3 V5 { {0 e$ K2 A3 v0 e* D# t
if(0 < length)
9 J! w9 M I1 f7 S {1 ]; c7 q/ w9 J$ M6 M
// 写一个字节到 THR f- O/ g E: |. m6 |1 r* }" H; d. [
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
8 z, s \, A+ v9 t, |0 K length--;* r v/ Z3 S9 _. [+ T5 B
count++;
( H3 Q0 u7 d0 H }" |% N7 ~' e: K! F& c! |2 {( R4 F4 D
if(0 == length)
5 |- e! C' F1 X7 _8 ?# N2 v: ]; o9 V! N {
1 ?! W9 c4 S! K // 禁用发送中断
5 b2 M6 T: N. K1 B4 o+ k UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
5 U" J, M3 G7 E }" y2 w; h# r/ W8 D
}
- l/ b, O' G: C6 ]7 b8 p我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|