|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问, `# ]" P9 m0 ~4 u
1.。DSP解算出来的数据是存在哪里?
- D S/ _+ l: l/ o# v; P* T& O2.。在例程中有这段代码:) d. F) v1 W x' L2 B1 f, F$ Z7 c3 d1 v
unsigned int int_id = 0;
9 Z) g4 Q- {$ P
+ V+ u! w/ z* q$ E. g; |+ @) [ // 确定中断源) o; Q" w0 V6 N& [) w
int_id = UARTIntStatus(SOC_UART_2_REGS);
! B$ r2 r4 T' N. Z2 X$ T
! W* _9 f1 O! y, G // 清除 UART2 系统中断
% R+ M& R! C, m/ x8 C5 ?6 d- H IntSystemStatusClear(SYS_INT_UARTINT2);9 d$ ^" D8 R2 ^9 ~+ b
/ n6 _/ I$ I0 u* b3 i
// 发送中断
" F( {# A3 O* w% L7 e if(UART_INTID_TX_EMPTY == int_id)3 K+ }0 z \5 I6 f% P
{
- ?4 A5 H( e3 ^ if(0 < length) l5 x8 {+ o- t2 p, o% t. M) Y
{4 |( ], ~8 N+ j
// 写一个字节到 THR. ?6 R, o% G+ [3 J. r6 K
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
- u$ c i$ R1 g length--;$ x; W8 s4 K& d" o; G
count++;
/ Z8 W7 d- i/ `3 w4 T2 K }, y* z( b1 W& c% D) W+ q6 P: h
if(0 == length)
Q- B+ s* N% _3 {! U& a) u {6 J5 ^4 k0 a ~/ L& ?
// 禁用发送中断
k) E- p0 J' j' y5 v/ e- Z) A/ y# X UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
. {/ |* c5 M! |3 C# ]5 C }
/ u3 }" G; B3 t8 y7 n: M7 x9 i9 P8 m }6 _5 B. u# l7 v$ N# l
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|