|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
, s2 r/ K# `% C* B5 D1.。DSP解算出来的数据是存在哪里?
$ \5 ]% X5 `( Q, `4 F C# l, v1 X) u2.。在例程中有这段代码:
$ [+ E* S7 Z6 @9 { unsigned int int_id = 0;
% e# A7 g. X5 X! i7 h% `8 p: s4 a) p% v# Y
// 确定中断源 E# C1 d; g5 b8 _, g# {
int_id = UARTIntStatus(SOC_UART_2_REGS);
8 Q7 N) a- D: s2 C6 o% o; T8 r$ P; \: Q% h. Q3 l
// 清除 UART2 系统中断
6 N6 o% c" \: D; a0 [ IntSystemStatusClear(SYS_INT_UARTINT2);
( q1 o; v/ k; T! q
2 C, ?8 `% ]- n3 p# [8 M" G- K // 发送中断
. r5 Y2 W0 t/ P2 b if(UART_INTID_TX_EMPTY == int_id)9 K: x2 `$ M& m+ W; X5 d
{* f+ Y8 d# E$ Y- e( P# ^
if(0 < length)
* ?6 ]! \( X B6 ` {( ~2 ~3 v2 `0 e: r+ N8 x' V
// 写一个字节到 THR
1 A& R# q0 S3 n- Y2 P& o UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);1 \3 c2 ^$ t. ~& N
length--;- d+ O' a: |6 U. o1 J$ b
count++;
m& a5 Q4 |3 V6 p } d3 O0 @/ n6 \
if(0 == length)
4 t/ p( H+ y7 _5 q. Q {
( E& H, J/ q/ u8 u' v2 a) m* m // 禁用发送中断
! [8 t8 I9 O6 ~2 m UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
: F7 M4 Y: K2 p1 U# _ h+ @- D* p! w }
% u& s+ R# {9 ^, ~" `* R% L }+ T3 a1 J3 w$ b2 q0 N' a
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|