|
|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
. {& }9 `2 \/ e$ t- N1.。DSP解算出来的数据是存在哪里?
2 u+ r! }) a0 u& i- z o- S2.。在例程中有这段代码:3 l; @8 c4 @( v$ J' f7 `
unsigned int int_id = 0;: _5 ]7 P( a+ _& ~* K8 P
! }+ _# E6 U+ X4 ]* X // 确定中断源+ s2 u' k7 A& J/ Q
int_id = UARTIntStatus(SOC_UART_2_REGS);2 |7 D7 A9 `4 g3 h. _
5 T7 x; V0 ], h7 x* w; l/ m // 清除 UART2 系统中断6 I# e8 ? L! U. y" s. s4 M( g
IntSystemStatusClear(SYS_INT_UARTINT2);! n. l) J# w5 V' ?9 e
! ?, W3 E4 ^( M6 r1 p // 发送中断! m( D) r! U0 d* w( D
if(UART_INTID_TX_EMPTY == int_id)3 Q" j% S; y p$ v
{
6 {! _* h+ E7 O% _. [ if(0 < length)
r* Z4 b. F y3 x {, e( Z3 \( u$ ]; e
// 写一个字节到 THR
& H/ u' M* I2 H, l3 ^; {1 n- m UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);/ E7 |7 Z( W; b* X
length--;: Y( W7 q. f! d4 ?3 r
count++;
) L, z' }* q( |- n- C }
' J& [) {- R& r i% G* { if(0 == length)
2 s/ F- n( [! f& _; A8 g {
4 |8 p8 U; W8 f* z/ X- c8 `7 d0 o // 禁用发送中断
% Y5 L/ V7 a) x/ ~' R8 ]" g UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
1 l# i8 N0 p+ d, }/ A/ Z9 L, R" i }
9 ?5 y- c( Y1 B6 a- Q }
9 z/ E# P# m4 @( A2 E9 H9 v7 r我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|