|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问8 k, O$ ]" _# I+ k
1.。DSP解算出来的数据是存在哪里?2 e* w `- E- k! G2 }
2.。在例程中有这段代码:. R3 c) M2 f; H- }& K5 U0 `
unsigned int int_id = 0;/ Y" o" ^# J G8 K# y
) {" H, x9 |4 G1 {& E8 ]
// 确定中断源( ^+ e e, M1 r9 a( `4 ^
int_id = UARTIntStatus(SOC_UART_2_REGS);
: p: w8 X" [4 d5 N4 ?/ M5 z( v* E9 d9 L1 G: c* W
// 清除 UART2 系统中断) x5 r8 _$ N( M" G% U i3 P/ u
IntSystemStatusClear(SYS_INT_UARTINT2);1 |& o) E) y0 S- z) I
) z% U$ f$ G* H' \ // 发送中断7 \$ R; t% C* J8 E7 ~4 w
if(UART_INTID_TX_EMPTY == int_id)
2 I* v3 K3 T, z& U9 R6 d. M1 O {
, E% `: R+ {$ C if(0 < length)
, c' n" b6 y4 @8 e" f {
6 F P: ^4 b9 R8 P // 写一个字节到 THR
+ e/ i* I4 j9 M5 e' H4 Z) S5 R UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);( `/ }6 ^& W- ~1 r; V
length--;! ^0 }3 x8 V+ n1 N; J5 V( \7 E( q) {
count++;
+ R9 U$ |9 U8 Z; z' G# P( U }& ?. T* H! K4 q- @$ T
if(0 == length)# T+ B" f/ I, D4 j
{
9 G/ ^0 A% b% {" T8 F0 }& b+ I8 t // 禁用发送中断$ w+ v z0 b$ J
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
9 `/ P% k6 ^9 A2 _! I3 i* S }: w8 ]6 n' L# p. R! y& c7 A( F
}
' g) @, C) w5 q! @6 Z$ ]2 D3 u我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|