|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问+ D" T \- y1 |, q+ c' L
1.。DSP解算出来的数据是存在哪里?' j, ^8 G7 O. P }& t! | |
2.。在例程中有这段代码:
8 C1 R5 }( C! x, o9 D% L unsigned int int_id = 0;( I# N8 z a( r7 g' U
d& M6 k; u7 M% L1 ^5 i
// 确定中断源
4 w$ q/ P! U0 I8 j int_id = UARTIntStatus(SOC_UART_2_REGS);
& r5 ^5 Q6 C+ k4 B3 V% q' W( D8 y' ]4 P( q6 |
// 清除 UART2 系统中断
+ g J: F; W) d( E6 x: m: U1 K IntSystemStatusClear(SYS_INT_UARTINT2);
* ~( R2 e9 l7 L5 e1 J5 @
) N0 i) E, u6 p- l: w // 发送中断' A& ^3 r! J, [8 Y: ?
if(UART_INTID_TX_EMPTY == int_id), X! U* h/ k% x+ l0 _' g) K8 G
{
% B2 `; \; U7 Z0 X( e2 h5 W if(0 < length)
+ a& X7 y& N g/ o( K {4 k2 F. B, D' @. |
// 写一个字节到 THR
$ ]$ u; i: V4 i, L9 j* m/ f% j( { UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);: F# i7 }6 K+ f9 o
length--;
! i8 {8 z h5 |! K count++;% Q& g4 T9 i9 T- s1 X) D
}
% g3 U# F/ ?% ]% N* V! v2 p if(0 == length)
! K- Y6 j4 ]9 x3 [ {5 `) L' }, W8 C# m* H
// 禁用发送中断
. \6 a" r4 H+ x! U UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);6 b2 ^5 V; C7 T3 F' X( a9 N o$ `6 ]
}
* M, N) B N- i7 y8 K9 k9 S }9 Q9 l5 M3 U& B( n5 H; M
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|