|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问6 S4 |( E+ `- @1 e- r* h' p6 ^
1.。DSP解算出来的数据是存在哪里?
: o7 \2 j0 K& c( D2 b2.。在例程中有这段代码:- j# ~* U7 f0 s5 m
unsigned int int_id = 0;( a8 m% ^0 O" p5 A$ D7 o
$ }/ _* R7 i4 S" ` // 确定中断源' `) s' T8 C7 L$ \5 a( H) r4 m
int_id = UARTIntStatus(SOC_UART_2_REGS);! ^8 |/ s, i l3 Z
9 Z- L4 V' n5 A F, W5 F // 清除 UART2 系统中断) T6 w8 Q0 {, [2 _) d: j, q
IntSystemStatusClear(SYS_INT_UARTINT2);
& H" J6 p- o5 a( }, P N8 [! I
* p( V. l5 X f // 发送中断
# E+ ]) i* u! }6 T if(UART_INTID_TX_EMPTY == int_id)+ H) N& p/ i, _) y
{
& b t0 ~$ o/ o) b* |/ M/ B if(0 < length)
2 C* M" q: y+ E- E3 F {" I% _% H/ w3 i& q E8 v! Z
// 写一个字节到 THR
. D6 D( K1 P, w) r6 r UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);) w7 D, I% Z8 B6 B& E }0 G
length--;: d2 r; `9 ? o, s4 O- ^# g
count++;
+ w2 x) Z/ t& Y! A5 R }
$ j! W0 o0 S1 ~. r if(0 == length)
/ e$ T) N% v" l; @' ~. Q' J {5 x1 g( u. f" B* d7 O$ f
// 禁用发送中断
3 @6 M6 p/ v- _ UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);# T) l* e# p- B( X2 m3 e0 w
}
/ D5 b! z( P9 \6 ^ } W+ l3 d& X; N
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|