关于“UART2_INT——UART2串口中断收发”例程 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
跳转到指定楼层
楼主
发表于 2016-11-10 21:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
. M4 r& x( g" g6 L% I1.。DSP解算出来的数据是存在哪里?3 k% W, q5 y8 I8 E7 h% T) ^
2.。在例程中有这段代码:& l/ j9 ?( J  ?2 U
unsigned int int_id = 0;/ t) N+ g7 ~6 K" [# X: I
, A$ `; l% L1 i4 `) r8 X' h0 `
    // 确定中断源9 l9 ]4 D$ L/ n
    int_id = UARTIntStatus(SOC_UART_2_REGS);
7 f8 h$ Z  P+ S8 f
$ }8 p; C) d; \& C# T    // 清除 UART2 系统中断
+ E* U: E' d" x( s0 e# z$ h  Q    IntSystemStatusClear(SYS_INT_UARTINT2);" x8 k2 f* i1 _/ n5 b* R7 ^

8 h( Z, N/ g1 g( K( |    // 发送中断$ `- J! W3 j4 l
    if(UART_INTID_TX_EMPTY == int_id)* ^* Y$ C- {* B- U! B; q+ ?- ^
    {1 @* z- b& g1 z) |+ q4 U9 [) l
        if(0 < length)
% Q9 w/ U9 K/ S        {
9 Z# D3 M  W1 z  D' L            // 写一个字节到 THR# C3 U; p# M0 H3 x
            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
' ~& e7 i& N& h; q1 G            length--;! i/ p) G$ X; F# Z( B  z. S: F
            count++;
1 f: s8 U9 W2 K8 O3 n9 P        }
. Z1 h7 z! ^* |8 T) z0 a! s$ c        if(0 == length)
  w! x7 ~8 [9 N1 V$ D        {
& Y9 I/ F3 B4 b% M            // 禁用发送中断
. J3 y; Y% X1 e$ \: p            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);+ K) `  m/ I% ]
        }! Q4 p+ J( `+ C3 X1 K" T
     }
9 J9 M5 P1 S2 l* [$ l# h6 h我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
推荐
发表于 2016-11-11 15:29:40 | 只看该作者
1、存在所有可以访问的 RAM 空间都可以7 K1 d( N+ V" V7 \% A$ R% s
2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
板凳
 楼主| 发表于 2016-11-11 20:12:47 | 只看该作者
@希望缄默 $ t. x) a- x1 `' E
那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
地板
 楼主| 发表于 2016-11-11 20:23:23 | 只看该作者
希望缄默 发表于 2016-11-11 15:29
# q% k/ H' @% D) q* q  q5 T3 y; B1、存在所有可以访问的 RAM 空间都可以- c0 t4 Q* P' k- {  l
2、因为每接收一个字节就产生一次中断 ...
! l% p0 @$ q1 F7 a- q$ r/ S5 r2 x
那下次中断是怎么触发的呢?
' q9 w" {- D6 {' t" Q; C# M0 r
回复 支持 反对

使用道具 举报

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
+ c/ v  l* w4 P5 b6 W' z接收到下一个字节

! F6 s0 q$ o$ u: Y1 D" K没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
0 Q! e7 O( q- |  K8 V5 n4 M, H1 P, A

点评

手动使能发送中断就会触发下一次发送  详情 回复 发表于 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- E+ ]+ y% q, C* c
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?, _9 u* J! [" @
...

: w3 V9 Y) B3 s手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
9#
 楼主| 发表于 2017-3-6 16:54:55 | 只看该作者
Etihad_21 发表于 2017-3-5 22:27
4 m( o$ F7 h$ a# g# ~. {; d2 ~你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...

& [3 L% t$ \4 b( M$ D. Q你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
10#
发表于 2018-3-22 11:43:17 | 只看该作者
希望缄默 发表于 2016-11-13 21:33
4 \8 F, z2 F6 d" x6 N9 i- k2 Z手动使能发送中断就会触发下一次发送

5 e/ m+ N5 l2 L2 H; g: Q您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-1-31 05:07 , Processed in 0.054561 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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