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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
跳转到指定楼层
楼主
发表于 2016-11-10 21:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问4 ~3 y, p' V8 V' W# l6 ]8 \( {
1.。DSP解算出来的数据是存在哪里?( Z- d/ k( c0 E) Z0 m
2.。在例程中有这段代码:
( {1 M% E" Z- Z  x6 V4 C unsigned int int_id = 0;
& ]! X" h2 c) P3 c* m+ K) n9 \" q) {4 \1 r# V
    // 确定中断源
  d4 l( z5 Y( p& l" C( y    int_id = UARTIntStatus(SOC_UART_2_REGS);
5 M% t- B: H. x& }) z' d' r5 c" h7 C0 F& Y9 n5 _' q
    // 清除 UART2 系统中断( R3 N/ L- B- z% S+ Y
    IntSystemStatusClear(SYS_INT_UARTINT2);0 c9 f  z, [$ c
! m+ C! W; p( ^# ]% G
    // 发送中断3 f* ~* l5 i* }) ^; Z
    if(UART_INTID_TX_EMPTY == int_id)
" l4 c, \/ J0 ?' ~  A    {, _# k, r) f# U+ \( L& X2 B& j
        if(0 < length)
& A9 Z3 `* d, I$ k        {
0 l) v. W2 X5 _1 I            // 写一个字节到 THR
. I$ s1 o& f7 [/ S  _1 K            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
% J2 F# K4 D( z3 G6 Q2 ?            length--;4 h) E, A  S; ~7 l' H/ U0 I
            count++;$ o4 v) b& k/ @% m/ [
        }, O; s* r! }9 w. ~! n
        if(0 == length)+ Y2 J* K6 R1 k& @( @6 J9 r
        {
$ ]! X5 X. Q) p1 h8 l            // 禁用发送中断
6 G4 @6 m  g# \+ G$ }: n. a2 s3 b% e            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
4 E: R) ~6 W' ]7 R        }( u/ k( |& m% O* m; k3 t
     }
6 \8 p2 h/ M% B! i  o! P" E我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
推荐
发表于 2016-11-11 15:29:40 | 只看该作者
1、存在所有可以访问的 RAM 空间都可以
! C, W  A+ v( l2 C2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
板凳
 楼主| 发表于 2016-11-11 20:12:47 | 只看该作者
@希望缄默
' r6 |3 U. X& ]6 }. V3 N那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
地板
 楼主| 发表于 2016-11-11 20:23:23 | 只看该作者
希望缄默 发表于 2016-11-11 15:291 S1 D6 d8 z* _7 n7 A5 |' [3 B) |
1、存在所有可以访问的 RAM 空间都可以& b: @) ~- c4 R/ A/ y4 M+ N
2、因为每接收一个字节就产生一次中断 ...
' X* d2 b/ t; n# }0 t: W$ R
那下次中断是怎么触发的呢?- S2 ^8 z4 o$ O& u7 M
回复 支持 反对

使用道具 举报

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:431 t, K7 m1 t! G; H- o
接收到下一个字节

0 T  f% X/ ?  c/ Y; y% [没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
% O7 s/ s3 d6 T( F- Y8 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! E# _) V7 t+ l6 ^9 M
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
  o$ S4 D- P4 A% ]8 A" X5 B; U ...
, s9 s- K! S1 T% `$ u% S5 \% g1 C
手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

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

% {: I' I# m/ m/ t" H7 g  a你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
10#
发表于 2018-3-22 11:43:17 | 只看该作者
希望缄默 发表于 2016-11-13 21:33! R8 Q- q. Q- Z8 f
手动使能发送中断就会触发下一次发送
  ?1 ^5 B( |# \! g1 u) V4 i
您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 07:24 , Processed in 0.054856 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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