|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
1 J( u) E4 T# c% a8 _1.。DSP解算出来的数据是存在哪里?
# u) y, S; m9 t2.。在例程中有这段代码:3 m) Q' {* q8 s7 Q* E0 s, X4 e/ K
unsigned int int_id = 0;
& r+ _8 I m2 M/ q. b4 K2 D
# q! p5 S8 ]8 d4 h* D // 确定中断源/ I4 I- |- ?; i/ U) x8 Z7 w
int_id = UARTIntStatus(SOC_UART_2_REGS);
- {( L# ^0 L) ^8 W0 m9 {, O- O2 B/ a, U$ a) [0 J* U
// 清除 UART2 系统中断
) o5 j9 n9 ~" t3 ^, A IntSystemStatusClear(SYS_INT_UARTINT2);, p) }- k% j) ~0 k
, m+ C9 ~7 {" m# x4 k# E // 发送中断+ y( b/ j5 q+ N0 C% D
if(UART_INTID_TX_EMPTY == int_id)
E/ C( R$ _7 k" i! O" U- C1 @* V {
+ ?! G4 d% T; \+ h4 l* u. ` if(0 < length)! n' {2 }& J: j8 [6 K5 w- k
{
( }; _+ }8 F3 z# C% N6 H) n // 写一个字节到 THR
* l9 X! P( @5 T2 E* W, ?" q3 @ UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);; H$ f9 K2 K2 d1 y* Q) `1 P
length--;
1 n* M5 [" U0 h* t count++;
: j( D9 G9 l3 M; u( L8 j }, r& G3 c; }8 r: M( p3 N
if(0 == length) J- Q) K$ Q4 e( n1 V
{
8 E5 e8 l5 G6 v. x S4 }, j3 b // 禁用发送中断
8 ]$ _ Z* U& B. x: [ UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
( O- ]6 P3 t) F: s' W" G }
" _ d7 k* }& P2 E2 x }
5 g/ J0 J& r' `% S+ Y% M" W我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|