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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
跳转到指定楼层
楼主
发表于 2016-11-10 21:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
2 D' H1 l/ j, K- p1.。DSP解算出来的数据是存在哪里?
9 [4 H; h$ H: b0 D( i' v/ F2.。在例程中有这段代码:9 n( l! X9 p1 s) J$ ~
unsigned int int_id = 0;
8 _/ Y& ]% ^. {5 p, a! v
% T- d+ \; f+ h    // 确定中断源: P) O- I$ [. m' u) Y7 @& I- a
    int_id = UARTIntStatus(SOC_UART_2_REGS);; T4 E$ m+ m; J' k5 n

% p" G3 w! A* G3 P    // 清除 UART2 系统中断
2 ^3 l/ c3 J( v* ]" Y2 a2 y    IntSystemStatusClear(SYS_INT_UARTINT2);) V. U; C- w0 z& K$ ~2 f' Q& |

: j2 X5 u8 c) ?    // 发送中断
9 v! W5 i. |; |6 B" ~    if(UART_INTID_TX_EMPTY == int_id)& s/ v( t6 r; b: ]% s( c( H
    {
4 f! ?) f0 l, W" x- o3 I" m7 Z        if(0 < length)- X6 n- w  x: m5 J
        {2 S% X/ |# w5 K) u/ N, m
            // 写一个字节到 THR
8 [/ t% m# O1 m  {            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);$ Z; [* J6 x/ u: p8 M
            length--;
3 C3 W. g% ^6 E9 B7 Z* z4 u* N            count++;
' n7 E$ ~; |6 t7 n        }
; l) x- P  J# A        if(0 == length)
$ x9 s. {- @; a# ^1 F2 W7 u( J: w  Q        {9 J0 N8 r8 u( g7 o' y8 s" `! H5 o
            // 禁用发送中断
9 Z# e4 f: _$ C( U; {: o1 L, o            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);3 y  o5 X! {  f
        }- L: I8 T$ a$ J# f' U5 @8 A' c) l
     }# w% t' g# l+ O8 n1 ?
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
推荐
发表于 2016-11-11 15:29:40 | 只看该作者
1、存在所有可以访问的 RAM 空间都可以
8 G, A, S- P8 n( y' \7 Y2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
板凳
 楼主| 发表于 2016-11-11 20:12:47 | 只看该作者
@希望缄默
) E6 A" {. ], C那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
地板
 楼主| 发表于 2016-11-11 20:23:23 | 只看该作者
希望缄默 发表于 2016-11-11 15:29, R" _  w7 \. o& ~6 e; g
1、存在所有可以访问的 RAM 空间都可以% e. b3 X( c+ q
2、因为每接收一个字节就产生一次中断 ...
7 ?8 n  P3 d- a2 ]' Z/ e$ L- _: U
那下次中断是怎么触发的呢?
& b3 h+ @  T. N
回复 支持 反对

使用道具 举报

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:43* ]  G) b: F- }' Q
接收到下一个字节
' p  i3 Q( X3 ?9 G9 M& s( l
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
. e2 z/ m& P, n

点评

手动使能发送中断就会触发下一次发送  详情 回复 发表于 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
* x+ \! C/ W/ a* f没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?9 h2 E0 u' F9 G  r& l8 a
...

) K3 J! @9 p* k# e手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
9#
 楼主| 发表于 2017-3-6 16:54:55 | 只看该作者
Etihad_21 发表于 2017-3-5 22:27
+ F: m1 O% `7 F" S) m7 ~. t你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...

( r8 |3 M5 \. h& `3 L你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
10#
发表于 2018-3-22 11:43:17 | 只看该作者
希望缄默 发表于 2016-11-13 21:33
9 y1 w" n6 l+ h. ]+ f: n+ l4 r4 Z手动使能发送中断就会触发下一次发送

6 z- P) F( d9 q. l' M, A' M6 s您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 10:15 , Processed in 0.044658 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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