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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
跳转到指定楼层
楼主
发表于 2016-11-10 21:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
* I: _# C0 g/ l: P8 N: E1.。DSP解算出来的数据是存在哪里?# K- f: a* N# I. m8 W# g( e
2.。在例程中有这段代码:
5 J# ~, v+ P1 S! B7 [7 i, D6 R unsigned int int_id = 0;1 x. Q: E  [. O! r" w9 O

5 A( ]6 x% l( ^& s' K    // 确定中断源
9 D: a6 }0 O4 M3 I' N+ v. i    int_id = UARTIntStatus(SOC_UART_2_REGS);
# X) a& w8 ~8 H
4 d1 e; F* X5 L) \% |+ j    // 清除 UART2 系统中断5 ]" a; y2 R8 ^" j. G7 h; Y
    IntSystemStatusClear(SYS_INT_UARTINT2);
' R2 J" S, U0 s, V! z$ b3 j0 r1 G2 H& B9 J
    // 发送中断
/ M7 l' z( _8 J. G4 y* P0 P9 S$ O# M% v    if(UART_INTID_TX_EMPTY == int_id)/ K) N9 c9 @- Z
    {
6 c1 U/ K: {- ^5 ?        if(0 < length)
' N* ~9 p9 v3 D! D4 d        {
- Q2 e* J% V  T# l: l& m% ~' P% A            // 写一个字节到 THR
3 t& s) u, r1 D( R* U            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);+ p* V, ~, k& d4 ^, q
            length--;
' ^4 Q% f% Q& c3 |, {) E: M            count++;
, V$ N) }7 L2 T- ~        }
8 k4 g9 @6 u( z4 ?! w8 N& A, N/ r        if(0 == length)( w+ m, D% D1 @2 p( l' j( d
        {* @6 n" a1 j1 U
            // 禁用发送中断
& F; s9 p7 D3 N            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);" b9 h1 D: j7 g% R0 w+ H
        }$ S: i2 U4 \# r. l, q) f
     }
3 r6 z" g1 M& @/ x我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
推荐
发表于 2016-11-11 15:29:40 | 只看该作者
1、存在所有可以访问的 RAM 空间都可以8 G7 \$ p* U2 P1 g, m, Y
2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
板凳
 楼主| 发表于 2016-11-11 20:12:47 | 只看该作者
@希望缄默 . A' O: H* ?$ T$ n; N
那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
地板
 楼主| 发表于 2016-11-11 20:23:23 | 只看该作者
希望缄默 发表于 2016-11-11 15:29* b0 u6 N5 M. l! n" h( D
1、存在所有可以访问的 RAM 空间都可以! M/ J: G7 q% I: p: C
2、因为每接收一个字节就产生一次中断 ...
% n6 k) q& L) T! d6 c
那下次中断是怎么触发的呢?( g) U! {8 k6 R- p3 h
回复 支持 反对

使用道具 举报

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 D$ F$ c: V* I- R( v! g接收到下一个字节
7 C% v$ F/ `+ y) R) E% D* o9 |
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?. I; }0 e& ^, O

点评

手动使能发送中断就会触发下一次发送  详情 回复 发表于 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, R6 v' }+ c, P& N; r
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?# k) F- y! K. |3 P
...

8 M3 q0 o( L1 a; Z" S9 L) o手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
9#
 楼主| 发表于 2017-3-6 16:54:55 | 只看该作者
Etihad_21 发表于 2017-3-5 22:274 b( q+ \4 K& Z
你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...

) l9 f+ f3 Q: _; p你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
10#
发表于 2018-3-22 11:43:17 | 只看该作者
希望缄默 发表于 2016-11-13 21:33+ h( N/ Y! A" @( l
手动使能发送中断就会触发下一次发送

1 C7 A" q, W1 [您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-14 13:21 , Processed in 0.045640 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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