|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问: S' K# k, B R+ k
1.。DSP解算出来的数据是存在哪里?4 n& |' h6 s( u) p7 F
2.。在例程中有这段代码:
; Z- s# K8 {: t- A+ C# j, B unsigned int int_id = 0;" V5 Y" \& r% d! e. X6 z1 `2 B9 j) Y
/ W" Z% I5 C% n. {5 s4 j
// 确定中断源
. p4 Z0 s ^0 v9 i4 K' ^* j6 l int_id = UARTIntStatus(SOC_UART_2_REGS);
! X: F' ?5 m( \2 |0 n- Q! w2 l: R1 e' l0 E
// 清除 UART2 系统中断
& r+ I U% S0 i) A. L IntSystemStatusClear(SYS_INT_UARTINT2);
% P& u: K- H6 i8 I4 E3 l O: _
6 G8 ~ U0 W- n' a! { // 发送中断
2 F' Y$ T6 [' O0 |4 u5 t if(UART_INTID_TX_EMPTY == int_id)! e" W: W t, ]/ Q1 n
{
7 t% w! ]" ~8 Z. S3 k, C4 p if(0 < length)4 c& } e4 Y7 h" C! A4 o; u% d V. J
{
9 ~! O& l- u, ~ // 写一个字节到 THR
7 H) J; o- U9 O* r. R& t4 f UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);! ~) X! n, C$ G& L
length--;4 |3 J6 j4 z- z
count++;
2 c& U0 n" m5 H8 T# ?. _0 h+ A }
Q$ E, I1 B5 J, L A! k, D/ g if(0 == length). W9 u! `0 t$ A
{
3 o# `; B: s9 U. i- A3 J' o: k // 禁用发送中断4 a; S4 l' f3 U3 V: `- B/ ^
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
0 a' N% E/ A& a; m% s$ i' T# N7 i2 Z6 S }
& b* j- ]% c+ A }
4 t. q. X* R1 Q# ^& z ~# G1 `我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|