|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
& M: Y/ k0 C; J0 }% _4 K1.。DSP解算出来的数据是存在哪里?
$ x1 V/ G2 M! X1 l) F2.。在例程中有这段代码:
9 e) b6 U$ n; s- u# V- ], e unsigned int int_id = 0;
0 R7 f; _/ c2 i% I2 H$ r
$ ]' K/ @/ Q Y, X // 确定中断源
" I0 x& O+ E9 d2 a# h int_id = UARTIntStatus(SOC_UART_2_REGS);
5 s; s! O9 C2 F; h: k2 L$ I- p- o! @8 a; H6 [1 e
// 清除 UART2 系统中断
7 D; R! n0 W4 P& _ IntSystemStatusClear(SYS_INT_UARTINT2);
# t0 k2 E8 _0 c) t% V1 w
3 y. d% [: `, v // 发送中断4 t3 |8 S: L8 h' Z C$ X
if(UART_INTID_TX_EMPTY == int_id); ^" m& t/ X) {( M h
{
% {' ]3 M v- d if(0 < length)
$ ]6 {0 H k2 q5 y0 L. ?' F i3 k {- L6 d/ G1 {7 R- {8 @0 D+ x
// 写一个字节到 THR
. J1 k# p7 D! ~% Z UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);1 M4 `1 Z7 N/ q+ S- {
length--;3 C+ q+ G9 w/ O4 Q' r
count++;
! x/ d- d u' ?& s- F( t! M# G1 d }
! d, j4 ^! T4 p5 R2 k0 A$ X if(0 == length)
4 @) l2 H' \% Z$ w6 [4 K {
8 S/ N. }7 r' @% O, m // 禁用发送中断; ?( J% w3 o+ D1 s3 Z
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);* [1 s6 Q5 a3 d& x6 Y0 m- M
}
$ [: d2 R' B3 X }
7 a% L# T& c. O4 P5 A, V% @我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|