|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
% c* N) z! h' J1.。DSP解算出来的数据是存在哪里?
; o8 E' ?1 z# }! y0 H& x2.。在例程中有这段代码:) f- H' z+ X+ }; w
unsigned int int_id = 0;& D6 p# S4 g: G
5 g, {0 S- s* e8 c // 确定中断源
# ?7 L% U# q+ E( X9 H9 K5 o int_id = UARTIntStatus(SOC_UART_2_REGS);
3 p0 T& x( m3 R% h# ^; f J4 G. s6 {
// 清除 UART2 系统中断4 t5 r. C7 Y- ^; C' ~9 v
IntSystemStatusClear(SYS_INT_UARTINT2);
) V7 p. E7 M& y; [# O
& n( i* w* x0 r- }/ N( F // 发送中断
! d3 c% Q6 R! k B; n& \ if(UART_INTID_TX_EMPTY == int_id)
/ }7 V) r5 ?4 ~+ T) p {
1 G/ `4 V% p8 a; q! s if(0 < length), }- }% b7 p. \
{
9 V m+ Z, l7 } // 写一个字节到 THR/ s- q# B1 ?& U' I& m& Z
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);6 B5 Z; v* p7 a
length--;# {# e" H. I1 k& a, _2 `+ _8 C
count++;
! ^9 U5 s, o O) y+ X) j+ z8 q }$ P1 f+ `9 i8 A0 F% {. d6 ]" Q* p
if(0 == length)
& [2 p+ }$ t5 b+ t1 ] { q6 H8 b" E/ u. L; d' L
// 禁用发送中断
( x* R! s" `7 A& F5 t L2 V1 R9 b UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
2 [! b2 ^5 G2 P }6 a# i+ P% B( I# ~
}: R2 o( c% }1 y; |* B( _
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|