关于“UART2_INT——UART2串口中断收发”例程 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1787|回复: 9

关于“UART2_INT——UART2串口中断收发”例程

[复制链接]

20

主题

65

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
发表于 2016-11-10 21:45:35 | 显示全部楼层 |阅读模式 |文章模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
! k0 R, G. O$ p6 a0 f1.。DSP解算出来的数据是存在哪里?
; d$ k4 q, z) N  w2.。在例程中有这段代码:& H8 f+ e' Q* `/ x; ~+ E
unsigned int int_id = 0;
8 s. m$ B, `+ W9 a5 z7 i9 c, z1 U
# u* J# Y- q) r& j5 E    // 确定中断源& i" }0 E$ F4 }) w* G7 ?. T
    int_id = UARTIntStatus(SOC_UART_2_REGS);* o+ s: r( L# u
" T5 k1 N1 \& y2 w! k) \
    // 清除 UART2 系统中断1 K: M# @6 r5 _. O  |
    IntSystemStatusClear(SYS_INT_UARTINT2);8 U- M9 ~  g4 K
% q: ?* ^( C( j6 ?4 ]
    // 发送中断- R) L& y( n; V6 x% m8 \9 o7 |
    if(UART_INTID_TX_EMPTY == int_id)
' K8 M2 {/ ~4 D    {9 {- a/ ?  y% t! h! R5 K
        if(0 < length)
; G3 ~" d$ Z* X8 ]* d% J/ e' n        {
! ^7 K0 |- q" b            // 写一个字节到 THR9 X6 }4 S7 X9 ]$ u
            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
( g) ?- E9 H( u$ X( t            length--;, y/ I* k: |* l
            count++;  |( n# g/ `/ e) s" I/ z
        }
. W0 C. Q2 d% U) V7 q4 s        if(0 == length)
1 Q$ g  v+ i  g8 t# o        {
  [$ S' [0 z/ c% |            // 禁用发送中断
0 U" b5 Y$ J2 d) ?6 f3 [! W            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
5 R) l8 e) O5 g4 M9 N. ?8 u        }
# T$ F1 p" [2 b! w3 m     }  A: i: V! l  f. p$ b
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励0 , 目前已有10人回答
最近访问 头像模式 列表模式
回复

使用道具 举报

15

主题

1343

帖子

4522

积分

广州创龙

Rank: 8Rank: 8

积分
4522
发表于 2016-11-11 15:29:40 | 显示全部楼层
1、存在所有可以访问的 RAM 空间都可以
8 {* t/ ~/ P& ^( _/ q2 Z2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2016-11-11 20:12:47 | 显示全部楼层
@希望缄默
" Q6 a. L6 E* a8 x: h7 `+ c那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2016-11-11 20:23:23 | 显示全部楼层
希望缄默 发表于 2016-11-11 15:296 q" B' M- B2 R- E7 b
1、存在所有可以访问的 RAM 空间都可以2 Q9 e+ o, s( r# T
2、因为每接收一个字节就产生一次中断 ...
2 {$ G* q" s: V# m
那下次中断是怎么触发的呢?
* ~0 O: R* x  _