|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
, ]1 m% g1 C5 ?& ^6 o% A6 o1.。DSP解算出来的数据是存在哪里?
! N- y# Q5 g9 {' r0 l& D2 W2.。在例程中有这段代码:
6 _6 H) a K% P7 k+ N5 ` unsigned int int_id = 0;
7 S1 r2 K. T, F6 }0 Q/ u# h6 }! s. p7 |5 ^% D+ k! { x$ {. M) _
// 确定中断源
3 V' t7 g( [/ \5 \3 ?. Y: t int_id = UARTIntStatus(SOC_UART_2_REGS);1 q$ a o7 y$ ~7 e- c
. K) \3 E8 S( ~4 j0 u
// 清除 UART2 系统中断" T; Y) Y# R# x2 f3 _
IntSystemStatusClear(SYS_INT_UARTINT2);
2 m( m" _# U. f# q1 N# ~) C5 e1 }. N
// 发送中断6 O) E8 m# W: I9 R J; c
if(UART_INTID_TX_EMPTY == int_id)
5 z @' n2 E( y& f! ? {* @9 F7 B( o6 @
if(0 < length)6 o7 R% ]% n' d* e
{
+ F9 ]3 S+ V$ s) [ // 写一个字节到 THR2 Y* x ` X4 Q+ m+ Z3 O/ y
UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);2 N- x5 K( s j& J, k
length--;. v/ S9 ]% x: ?) k. ?
count++;* W; @% B' `& w% M y
}3 ^) O2 A2 @0 F& A* v
if(0 == length)
5 _$ z# x2 F7 W' z3 D" T {5 m/ T9 Z8 t( ^4 v
// 禁用发送中断
# @0 w' s1 f& v* ] UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);7 Y) r+ X1 F0 j5 ~9 K& u
}( F5 b# h* Z% J% @6 q$ @
}0 Z8 f$ y4 H8 e3 v/ M9 c' G. O. s
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|