|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
# A, C8 O- [1 h. V3 n6 p" y1 ^& P' \1.。DSP解算出来的数据是存在哪里?
8 w8 d) f5 u- F2.。在例程中有这段代码:
$ \, u/ `+ W5 ~0 o0 ~; |2 M1 h unsigned int int_id = 0;
3 G% Z' ?: C: l5 ?/ w& \* ?( T6 a. M9 O' Y
// 确定中断源
6 S* F7 [/ c- T% q8 j4 r2 I6 h6 w int_id = UARTIntStatus(SOC_UART_2_REGS);
5 ]6 L* Z/ x# q, q9 X0 j6 ~
. N2 x: F2 T: A5 Q* M // 清除 UART2 系统中断
9 F0 o6 O; @) n, {; i7 } IntSystemStatusClear(SYS_INT_UARTINT2);/ i! L% F* I* I
& x; w; Y+ S0 T6 b, [0 \0 r
// 发送中断
, |- S G& t. x' V* i( A if(UART_INTID_TX_EMPTY == int_id)
$ a9 h' A' U/ `0 U; O3 K I/ I {
3 n2 f) Q: Q0 p* I/ W if(0 < length)
4 D% \: t8 |4 ` {- V! R% g- u* ~0 T4 x0 g3 l
// 写一个字节到 THR
1 m6 g+ J4 x: V9 Z/ t$ Q& i& J; G. b UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);) a; _* l- p; L6 T8 O. Y* s
length--;
' [5 S7 o2 K# }7 `9 b$ V count++;
3 G1 n% l$ u; x6 T6 p& s; o }- S d! a4 V0 r& i T
if(0 == length)
$ z v% c8 p/ X8 e3 z {
! F$ D, B$ l# a; J) ^ // 禁用发送中断" c& E0 t6 Y& e" y* @$ L
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
& t6 h, P9 ?8 L0 L4 ]6 p: v' F }
5 K( V t+ h( s }
' E4 n( ^# @" y+ r! m我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|