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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12948|回复: 9
打印 上一主题 下一主题

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
跳转到指定楼层
楼主
发表于 2016-11-10 21:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问  A7 |, P8 _( \' R8 t
1.。DSP解算出来的数据是存在哪里?
* `' ^* |3 x: \; C+ X4 b2.。在例程中有这段代码:
2 c7 p! |! J1 `; z9 y unsigned int int_id = 0;: e, S2 c2 Y( e& h) R
; R+ N6 l: N# v- t, K. L
    // 确定中断源
" N2 \2 V0 m  W$ ?! i* O5 i2 _* b/ P    int_id = UARTIntStatus(SOC_UART_2_REGS);. w1 ?7 f) |( @! |( z% Y/ D* M# ~

3 {3 g" e- `* U. n& Z$ m( _' `' F    // 清除 UART2 系统中断
8 N1 ~7 {. N& O. }' k    IntSystemStatusClear(SYS_INT_UARTINT2);
9 m- Q# g4 {: a- v8 R8 p: g3 [4 d9 o* o2 r0 N
    // 发送中断- z/ A1 P6 I0 i, H' r
    if(UART_INTID_TX_EMPTY == int_id)' \1 n, X3 V: i& [
    {9 x- v, C6 M* h  |% k. a" l
        if(0 < length)7 y6 h, p" f+ p4 t" ?) h% H
        {4 V; b" ^" I+ s2 g0 M
            // 写一个字节到 THR) @0 X7 {/ D6 q4 F% A5 m' h
            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
+ }& i5 ?9 w/ ?. d: l; g            length--;
7 y! f* u7 j) f            count++;% K( F3 j) b& c5 e
        }
3 C5 G+ d& S8 x* w. T/ f9 H! r        if(0 == length)6 n3 S3 X! @5 g: Z' O. Y, l. r" A
        {* }( Y1 ]5 s5 A5 W$ h+ k# n
            // 禁用发送中断
. C9 x3 Y& ]& v- z            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
! ^& j+ L, B+ H. c        }( p0 ~* t( }2 u
     }3 N2 b$ p- F3 G/ b
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
推荐
发表于 2016-11-11 15:29:40 | 只看该作者
1、存在所有可以访问的 RAM 空间都可以- M# ~' C& o: F, n; C9 g+ e
2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
板凳
 楼主| 发表于 2016-11-11 20:12:47 | 只看该作者
@希望缄默
! ]9 y# n4 c) {4 f# Q  l& Z) X& ~1 q那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
地板
 楼主| 发表于 2016-11-11 20:23:23 | 只看该作者
希望缄默 发表于 2016-11-11 15:29: O( ~2 E% W) _4 e4 p4 t
1、存在所有可以访问的 RAM 空间都可以
3 v+ [6 c' \) l2 O) v$ d1 z2、因为每接收一个字节就产生一次中断 ...
* @! k7 E& G1 n: h1 Z
那下次中断是怎么触发的呢?
$ \- a: J) c9 \8 b( v
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
5#
发表于 2016-11-12 05:43:15 | 只看该作者
接收到下一个字节
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
6#
 楼主| 发表于 2016-11-12 09:43:49 | 只看该作者
希望缄默 发表于 2016-11-12 05:434 F( q. y) K# O6 l4 O
接收到下一个字节
/ H% h; x4 X% T2 T. ?7 K
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
1 E+ x& h( w: ^  b8 W

点评

手动使能发送中断就会触发下一次发送  详情 回复 发表于 2016-11-13 21:33
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
7#
发表于 2016-11-13 21:33:36 | 只看该作者
jj909305 发表于 2016-11-12 09:43
# A$ `4 ^  x, {8 ^没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?3 m$ D; P  {3 Z0 Q) W+ Q0 U
...

! }0 p* V1 Y& O9 j$ S) V手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
8#
发表于 2017-3-5 22:27:54 | 只看该作者
你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时,接收的数据不知道什么原因出现了连续的FF或者00?希望能够解答,谢啦7 [& |0 {) m3 H. D
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
9#
 楼主| 发表于 2017-3-6 16:54:55 | 只看该作者
Etihad_21 发表于 2017-3-5 22:27  u% i2 L4 h/ ?7 k  H
你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...

0 _$ G5 B% U. w+ K) T% k! {! _& x你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
10#
发表于 2018-3-22 11:43:17 | 只看该作者
希望缄默 发表于 2016-11-13 21:33
# g: I, D8 i0 f) h8 `4 i) l$ N! e手动使能发送中断就会触发下一次发送
" j3 U" {! V3 E. L/ K
您好,我想问一下如何手动使能发送中断?

点评

您好 不好意思回复晚了 应该这样就可以了 UARTIntEnable(SOC_UART_2_REGS, UART_INT_TX_EMPTY)  详情 回复 发表于 2018-8-7 15:02
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-6-16 03:20 , Processed in 0.041713 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表