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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
跳转到指定楼层
楼主
发表于 2016-11-10 21:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问% U' [5 y3 K$ A
1.。DSP解算出来的数据是存在哪里?/ T4 b& @1 T! w2 Q
2.。在例程中有这段代码:
0 T" |6 Y4 }# X' P, ~* ^" e) [! k unsigned int int_id = 0;1 C' y" k. ^9 U9 u0 [9 Z% I
5 w$ k+ W0 m. u6 N1 @" o" L
    // 确定中断源
5 m/ x( p8 T" w* k    int_id = UARTIntStatus(SOC_UART_2_REGS);
6 y; l2 n$ u0 r8 B/ C
0 [; A7 l! }5 h- c7 u# D+ u    // 清除 UART2 系统中断
: |- h/ ~  u: h. Q- T$ W, H5 ]    IntSystemStatusClear(SYS_INT_UARTINT2);
) y! t  @( R/ p4 A; r3 w1 f1 Y6 j
    // 发送中断
/ g3 K6 q% ?# K) q$ i  j    if(UART_INTID_TX_EMPTY == int_id)' h/ D8 \+ O5 O6 @/ W' }- M
    {" P0 @1 l$ U1 i  k. c- A) }
        if(0 < length)
; ?7 h3 g# l" {/ m! s/ m        {
  Y" |: n" ^8 `4 ^            // 写一个字节到 THR5 {- k/ U7 ?, D8 t3 w3 n* t) e
            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
0 F5 y+ x) u2 p& ^, J, |. g            length--;% O' Y2 x8 w1 b# X
            count++;0 H/ F! L* S' d6 L9 i9 J$ C
        }; I9 C$ N# E; ~3 I6 g0 W% q0 V
        if(0 == length)
% h  [% B# k6 Y! {3 Z+ b        {! }2 X4 N5 N9 a  w& L
            // 禁用发送中断; x% y9 P2 r/ g
            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
1 y2 B# |" E  R' u8 u4 n        }
/ s3 X  t7 X+ C1 q, ?. ^: B1 z) F     }
* H, C5 x% X$ s. t我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
推荐
发表于 2016-11-11 15:29:40 | 只看该作者
1、存在所有可以访问的 RAM 空间都可以
3 u$ g' H+ {- E/ B2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
板凳
 楼主| 发表于 2016-11-11 20:12:47 | 只看该作者
@希望缄默 7 O7 X& S: p; f) y
那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
地板
 楼主| 发表于 2016-11-11 20:23:23 | 只看该作者
希望缄默 发表于 2016-11-11 15:29
. D6 c' F# x- C: `( D4 [. j1、存在所有可以访问的 RAM 空间都可以. m; ^; U; ~/ ?( i9 `% W4 D  V
2、因为每接收一个字节就产生一次中断 ...

! ]& k" S3 ~7 _/ [: G. P那下次中断是怎么触发的呢?) r; x& [, W7 j5 J3 p. L
回复 支持 反对

使用道具 举报

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: `0 C# Y- O: F
接收到下一个字节
8 C. T4 ?2 @% s
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
! D& v9 R" s" B! ~7 b

点评

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
7#
发表于 2016-11-13 21:33:36 | 只看该作者
jj909305 发表于 2016-11-12 09:437 h& I( H  {* o' J7 _# `% s$ f
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
  N/ M! R9 W& E+ X! F* V. N" K/ e ...

$ N1 W1 w0 R. t* s; B3 L4 H" y手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
9#
 楼主| 发表于 2017-3-6 16:54:55 | 只看该作者
Etihad_21 发表于 2017-3-5 22:27
* p' v# `$ P0 c' x你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...

- e# i0 S6 ~# B+ y4 q你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
10#
发表于 2018-3-22 11:43:17 | 只看该作者
希望缄默 发表于 2016-11-13 21:33; H& |; H+ Q7 E: o6 [& ?+ w( t
手动使能发送中断就会触发下一次发送
$ W1 R$ S$ v- D, h. u5 M' t- E
您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-16 19:16 , Processed in 0.043962 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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