|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问( B) m7 \8 z1 T: s. y$ r) x
1.。DSP解算出来的数据是存在哪里?
6 B4 T: n# E1 Z" M v) H- u& R2 J2.。在例程中有这段代码:
7 o& E' X/ Z) w* W# Q unsigned int int_id = 0;
( c+ J: i( V2 c2 i1 x# J7 B8 y
1 h) X7 d" m4 a6 `$ X# D' U. b9 ]2 } // 确定中断源
2 [2 L) y, k: n5 y) R& v: ]+ o int_id = UARTIntStatus(SOC_UART_2_REGS);! {$ w1 Z. F* L0 W
( B( j0 J( M7 M* O6 T( c! i // 清除 UART2 系统中断2 g7 a0 x' d% ~
IntSystemStatusClear(SYS_INT_UARTINT2);2 L/ A5 T4 u) O
- O$ n! t& T3 B6 O* T1 h3 H // 发送中断
2 J6 z1 `/ B4 t5 I; G6 n9 Z5 s9 X if(UART_INTID_TX_EMPTY == int_id)1 s( c( F7 ~: n" K
{
+ w; ?: ]/ B( E+ `1 G6 q" n4 V if(0 < length)
/ B0 S6 l' Y! y/ W9 ~0 E {: S$ T4 C! l; E
// 写一个字节到 THR
+ I; n* B+ `6 H, r UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
4 P" i4 ^7 V: E4 b* N ~+ i length--;
+ O6 Y! H7 I; f0 e) S count++;
% m, J6 z9 n; p }
; ~2 R( V* A1 p( @ if(0 == length), {: u9 j3 ~& e/ ?
{
! V% n: q1 G9 N- x' O; v. Q7 R // 禁用发送中断% j5 [0 J0 u0 [! h: O9 w& g8 e8 J
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
, _7 {' d' U' K: `4 z }
1 M( k9 f( d; Z c' e: |" o1 i% {: I1 i }
8 F/ b4 }1 R; l- y/ H% p3 }# O我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|