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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
跳转到指定楼层
楼主
发表于 2016-11-10 21:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问, Z2 x# M4 ^% ~% K4 B0 t
1.。DSP解算出来的数据是存在哪里?
6 _  |% k0 h8 y2.。在例程中有这段代码:
8 y3 p/ p& z5 T3 @% R: Z! t unsigned int int_id = 0;
- o2 ~+ ~6 q0 y/ g( r. z7 T3 e
2 Y( x" i7 G; a9 J& g    // 确定中断源" J( M8 \' D8 O  V/ Z% s  ]
    int_id = UARTIntStatus(SOC_UART_2_REGS);
+ ^, B7 I/ c9 w6 ~- Q- H$ H% s9 `- }3 b; n
    // 清除 UART2 系统中断; F5 q: ~3 K0 [" h: S" ^7 p7 g
    IntSystemStatusClear(SYS_INT_UARTINT2);
3 C4 X/ h  v: U  r* r- o8 i- E) M! d0 f$ p
    // 发送中断
* c1 D9 K' l+ k  t    if(UART_INTID_TX_EMPTY == int_id)0 [- g( j. D# ^; Z
    {
1 W2 j2 u# ?4 C; P6 t) V& Z3 ~, t        if(0 < length)  Y/ b9 v* [+ \" w3 k6 a
        {
, r% e8 N9 H6 _            // 写一个字节到 THR
! S/ J) N/ F2 P+ S, v  t& J            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);# n* y! z5 n% a/ z2 t1 n
            length--;* w, J3 E3 ~) J; ]" C; D
            count++;: T1 B% t& ]+ C9 r0 g2 q
        }
5 Z  R5 L4 Z6 T        if(0 == length)0 C7 A5 N# d; ]; h; T* A
        {% U4 H7 C& P' W5 }
            // 禁用发送中断
- n; i& h4 |/ ^2 p9 J            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
% z6 i4 B* D, e. I7 q        }/ S1 H; u$ ^$ T- Q0 l2 R  l, g2 D
     }
- b  v1 j% ?: Q* r8 Q$ T我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
推荐
发表于 2016-11-11 15:29:40 | 只看该作者
1、存在所有可以访问的 RAM 空间都可以! g& O; i0 r6 u7 D, B- a! ~
2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
板凳
 楼主| 发表于 2016-11-11 20:12:47 | 只看该作者
@希望缄默
5 K: I) B, @/ `; }4 H那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
地板
 楼主| 发表于 2016-11-11 20:23:23 | 只看该作者
希望缄默 发表于 2016-11-11 15:29# I3 O/ h; J5 C2 S3 S
1、存在所有可以访问的 RAM 空间都可以* l2 o8 t7 N/ C& O
2、因为每接收一个字节就产生一次中断 ...

, c) R0 D0 x" T  {0 L那下次中断是怎么触发的呢?+ v/ J3 y: R# V- z% w7 m; `" S
回复 支持 反对

使用道具 举报

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" e' }& b: p- p% D8 k* C
接收到下一个字节
; k0 M+ T8 R3 |( i) `  T# s
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
, I) b: ^' J( ?/ R+ r

点评

手动使能发送中断就会触发下一次发送  详情 回复 发表于 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
' o* |' v2 @; `0 ]没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?  O  H' W2 k3 R0 p0 r1 z8 l9 ^7 Q
...
, S8 l. O( J0 U  D9 U
手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
9#
 楼主| 发表于 2017-3-6 16:54:55 | 只看该作者
Etihad_21 发表于 2017-3-5 22:27
3 P8 c7 N% T$ N4 i9 r3 k6 n% O: U你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...
8 v" b1 N, N( w! L  P
你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
10#
发表于 2018-3-22 11:43:17 | 只看该作者
希望缄默 发表于 2016-11-13 21:33
% U6 n8 z9 C" E. z( z0 N' j& o手动使能发送中断就会触发下一次发送
7 o/ s% E) N* {* n6 M1 |6 B7 [- Z
您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-2 21:49 , Processed in 0.043745 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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