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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
跳转到指定楼层
楼主
发表于 2016-11-10 21:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
; H& V8 U5 a8 @) f1 x1.。DSP解算出来的数据是存在哪里?- q7 c9 ?" M$ i/ x* ?
2.。在例程中有这段代码:
/ u" G9 O: }( i5 E4 G unsigned int int_id = 0;
0 G% v4 l5 @+ T9 d5 Y# r7 L7 A; X0 q! f* x+ Z# q5 C- c
    // 确定中断源
9 Y1 C; m& R* m/ S/ F    int_id = UARTIntStatus(SOC_UART_2_REGS);
% e/ F. e) a5 J! f3 j' J. d  g9 ]% F8 I3 Y0 K  g, P$ l& @
    // 清除 UART2 系统中断9 o1 r9 Z1 v; ~, j, k/ t5 j2 i
    IntSystemStatusClear(SYS_INT_UARTINT2);
" y3 A( \  U! c  T5 i0 b+ d' f7 @/ J/ L- I8 L3 x) F2 Z
    // 发送中断
! N9 ^. E; c# p- y4 T5 M    if(UART_INTID_TX_EMPTY == int_id). z" S! H7 ^) T" O& P9 X
    {
) S6 e) L& K2 Y        if(0 < length)1 a% b- |9 s; p4 L, j/ B
        {: A' E( o5 j- X, x
            // 写一个字节到 THR
; \2 }, F, C) v9 g7 x            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
: k3 J- V6 y# H- b' R9 _            length--;
8 `5 ~. E' L0 p1 G7 J4 ]            count++;) E. V) R; H; T! n9 K' i, T3 ]
        }
/ l! Q  [) r$ g$ B! C! l2 ~6 H        if(0 == length)
6 X; N8 X0 p$ p: R( Q        {
7 Q: A+ n  g6 a: K( I9 u/ Q            // 禁用发送中断2 j; g, `# K0 I# q( n
            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);- I5 @4 R  M" ?: l+ U
        }$ I9 `# Q& m! A( `$ P9 v9 J
     }& {; _# Q) N8 x) r/ D5 q9 E
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
推荐
发表于 2016-11-11 15:29:40 | 只看该作者
1、存在所有可以访问的 RAM 空间都可以
/ U: _, r- k: S2 ~6 O' R* }- x( w! ?2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
板凳
 楼主| 发表于 2016-11-11 20:12:47 | 只看该作者
@希望缄默
/ B5 }1 a$ `4 _5 ^0 m3 W& q2 T那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
地板
 楼主| 发表于 2016-11-11 20:23:23 | 只看该作者
希望缄默 发表于 2016-11-11 15:29
& O4 ?; |  _. Y# _1、存在所有可以访问的 RAM 空间都可以
) `; t. `, c# G  o2、因为每接收一个字节就产生一次中断 ...

. `2 C- `7 U) n5 e0 z那下次中断是怎么触发的呢?
0 k( z: @$ }$ F. C, h& 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
. A: k7 @7 D1 h- L9 k接收到下一个字节
' q- ~+ g$ p, s0 D- |- @
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
8 i. H! U) w/ [3 f
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
7#
发表于 2016-11-13 21:33:36 | 只看该作者
jj909305 发表于 2016-11-12 09:43, g' p% R3 k% }* Z& w
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
# B* `& X% H9 L$ c2 c) s ...

! C9 {9 Q0 E4 s; G+ x2 x1 |. ~+ C) Q. r手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
9#
 楼主| 发表于 2017-3-6 16:54:55 | 只看该作者
Etihad_21 发表于 2017-3-5 22:27
" w! A/ F& A7 U# ]0 h8 B  u2 Q" a你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...
9 S- Y5 J5 h# [$ _6 P: ~; r
你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
10#
发表于 2018-3-22 11:43:17 | 只看该作者
希望缄默 发表于 2016-11-13 21:331 i+ T* k3 W) P8 J" d) d- u) j! C
手动使能发送中断就会触发下一次发送
+ D+ j5 |) i  s2 v/ V7 X8 u: ]
您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 10:48 , Processed in 0.049115 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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