|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
8 [: p* P& S Z5 [+ ]1.。DSP解算出来的数据是存在哪里?, d) O$ x+ n5 ~
2.。在例程中有这段代码:( p- [) Y; F! U
unsigned int int_id = 0;
! u" p3 [& r) Z. c- Z
" k, A' u1 j- h // 确定中断源
|$ P5 H+ {3 q3 m0 j+ m int_id = UARTIntStatus(SOC_UART_2_REGS);
( o2 Q, l. N2 W: W6 k* m
d& v% ?8 u+ T& D. I' E' Q h0 q: m // 清除 UART2 系统中断
, U3 g7 N/ Q: {2 s& \: I IntSystemStatusClear(SYS_INT_UARTINT2);
7 F! p, O! i. C: f. S. F7 o, p$ _0 J8 B+ j0 c. A$ X( [
// 发送中断- X# B' l. ?7 _6 n1 ?, c
if(UART_INTID_TX_EMPTY == int_id); x8 y" G6 o6 I9 D
{
2 W8 U( m$ k& I0 @0 s. ^$ i* n if(0 < length)& m+ E# J5 |) f% }8 b5 [1 P* ~% e
{
7 m" W1 H; y& I$ d" A2 f // 写一个字节到 THR9 y. A3 [5 g0 b/ f7 V, s
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
( w! [5 g* {6 U+ C. ~" n& k length--;# p: ^# h4 J+ D/ J2 p& q
count++;5 y7 x- q( l* K% }
}
* T9 E0 L6 D8 E$ D, d. s3 @# l3 x if(0 == length)- K5 `! z, D2 X: B/ C* B) E
{
- A. ^7 Z; Y. y" s% `: V, a f8 ^. H // 禁用发送中断8 @8 ?* _! H# K% E
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);* ^) E; s4 r! M6 C
}
! D' w" u Q7 I/ s; E" {0 ]6 Y }& M! B' `4 f9 X
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|