|
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
7 G3 E$ N2 u7 g' k$ T' u" o1.。DSP解算出来的数据是存在哪里?
4 O& ^/ l/ }$ O5 _$ f4 L2.。在例程中有这段代码:
& r2 [( p! I) d5 K$ S unsigned int int_id = 0;: l# L, o& y$ g! M! |8 |
/ ]- w7 j7 f4 P // 确定中断源/ }# \2 e4 T$ _* I# d" L! t
int_id = UARTIntStatus(SOC_UART_2_REGS);+ ?& Q: P' z1 L g4 j, F, j
" I9 a# {, c1 S1 w // 清除 UART2 系统中断
9 C; q$ b h# L% d! `# q3 d8 P IntSystemStatusClear(SYS_INT_UARTINT2);, ~2 Q% e+ e$ a8 i# Y. F
: ?3 l2 `. V1 h7 q. ? W5 x
// 发送中断
- M: x3 {( Q# h- [% d% V% D if(UART_INTID_TX_EMPTY == int_id)* v @, _0 ^& j, ^' z. ?' R
{
- T, S2 L3 s) G# ]# c* J: a if(0 < length) e: F* Z6 l6 N/ l5 A5 O
{
3 w8 Q. b0 L2 H8 p3 d9 }1 r. G // 写一个字节到 THR
9 D. v% W% C3 X. s H UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);8 E. @* L* E9 X- ^. M+ k$ }! r$ j
length--;
3 C* u _3 p3 r1 y! ^' v count++;7 b$ S' [- f8 {8 O: ^( n
}
: ?) }( W1 p$ I/ h! m) } if(0 == length) w7 e I- W6 m0 R; h- j* b; o
{! F+ v5 O0 M. R
// 禁用发送中断" Q/ o& g T8 b) k$ l
UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
9 C, y: f; w# [. p- q }) r0 j" [/ [9 A" D: a
}: m' L" ^5 _; h5 q# p3 l# v$ r2 L1 n
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的? |
|