|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问0 f* T/ r0 y& e; T% m
1.。DSP解算出来的数据是存在哪里?0 Z# r4 M ?8 |& R# O
2.。在例程中有这段代码:8 a. u. ` }9 _, n8 f7 P. G' @( x
unsigned int int_id = 0;' n& ~. L4 O( Y7 `2 J# e* Q, ]+ ?
! L- T+ \5 O7 T: C1 f: g7 Z+ q // 确定中断源
6 l- d0 x) d6 C% V* P# V9 M int_id = UARTIntStatus(SOC_UART_2_REGS);
" } v+ E% L* q( ]2 z7 b0 g' v$ h, W- `5 e [' L+ n# y$ f% F
// 清除 UART2 系统中断
0 B) {5 V2 K8 \; [ IntSystemStatusClear(SYS_INT_UARTINT2);* p4 ^% C7 I- V% T
5 k/ S2 ~1 M* u2 Z9 C& T( v$ G
// 发送中断; r' ^7 o6 n/ z
if(UART_INTID_TX_EMPTY == int_id)
8 N/ F o: T4 \( \ {2 S* N- \. _8 S, u5 C
if(0 < length)4 R+ c. t3 u7 Z
{
' @: V% Q: k! u* x0 _ // 写一个字节到 THR
' v9 E* ]5 S6 N7 ?+ y UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);. V, F+ \$ M7 l7 o" N5 y/ [; }8 i
length--;0 D) U+ I* Q% i% T1 V
count++;
- A: _4 a j h7 W3 L$ s% Q R }) o3 I8 h& G" d3 a4 F* ~
if(0 == length)
5 f8 e, R$ u- J' C {
$ t" x/ u1 S; H" D4 _4 H // 禁用发送中断
" u. f& T3 z9 `! z/ ~7 J UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
* _2 H8 D% Q' n' g+ u, \ }' V3 p5 c( P: c7 }' N- M4 G( ~) z
}
6 P. b @3 b9 H% r2 y1 i我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|