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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
跳转到指定楼层
楼主
发表于 2016-11-10 21:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问2 f/ a) C" n  g. y: D  R8 d9 |  ^1 s
1.。DSP解算出来的数据是存在哪里?1 U% Z# R9 L( q" M( R9 t
2.。在例程中有这段代码:
# o; ?: R# W' A5 M7 M7 h unsigned int int_id = 0;
5 e2 k$ S0 [% B/ j4 e7 _8 B; G2 h# L$ x9 i4 H2 Y1 @3 f
    // 确定中断源
" l! T# t0 i1 o- i9 f    int_id = UARTIntStatus(SOC_UART_2_REGS);6 U1 Q7 E- }" _- Q
  P7 [; Q! `0 A( ^3 e
    // 清除 UART2 系统中断
1 C& R* [( W8 O8 R    IntSystemStatusClear(SYS_INT_UARTINT2);. n6 ~8 J, w2 M
0 w. k& A2 \+ [1 U! B. j
    // 发送中断
9 {' f' E" V+ z! K8 o" a- }    if(UART_INTID_TX_EMPTY == int_id)
9 |, U8 f! o& _    {, U; ?! H4 x5 N* }' I7 H3 d
        if(0 < length)9 R6 c# @/ D* f* Q" b
        {* M, o7 D" G" n3 p& t% M, n
            // 写一个字节到 THR
' A! @; g! B- C8 A  q$ ^            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
1 R7 I0 M" ^* z; J0 v# r            length--;0 L: M5 E' s5 `. Y' ^. e
            count++;
$ T7 G' \& m: r% x4 r/ B& Q        }
# [7 d3 u+ [" X( H2 l        if(0 == length)
3 r2 g! l0 W6 k        {
, m6 s, O$ x1 n5 h2 y6 N            // 禁用发送中断  H" H8 c& w% W8 l( t/ k
            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
: s- ]( r+ A& |        }! b2 t  @# j+ V& c# a' j$ |1 Z
     }" s# Q4 d1 \, f0 g6 M
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
推荐
发表于 2016-11-11 15:29:40 | 只看该作者
1、存在所有可以访问的 RAM 空间都可以
# x% E+ h7 a# A9 L+ l2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
板凳
 楼主| 发表于 2016-11-11 20:12:47 | 只看该作者
@希望缄默
- Z. K* F: s/ f" |; d, N那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
地板
 楼主| 发表于 2016-11-11 20:23:23 | 只看该作者
希望缄默 发表于 2016-11-11 15:29
% ~6 h/ A2 m! F$ Q) Z1、存在所有可以访问的 RAM 空间都可以
! L- t" ^0 z/ a2、因为每接收一个字节就产生一次中断 ...

! b6 Q7 @6 l9 ^1 C7 e# ?+ B( `那下次中断是怎么触发的呢?
% w* u2 T4 w  k! w- k" W9 A
回复 支持 反对

使用道具 举报

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
% f$ {' X, h+ d. L9 G! i( R' W$ A6 D接收到下一个字节

0 `) D8 W: W- ^. B* e0 {没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
6 ~$ X9 g9 Q1 ~" ^9 p) Z

点评

手动使能发送中断就会触发下一次发送  详情 回复 发表于 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
5 _8 W6 e7 Y  g) `. S' E没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
$ w$ K; q( x" T. a5 _9 r8 i ...

* d: c% \8 d7 I  ^% n9 M7 S手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

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

0 h" [9 L5 K$ j你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
10#
发表于 2018-3-22 11:43:17 | 只看该作者
希望缄默 发表于 2016-11-13 21:33
# [# ~4 S9 t7 b/ a5 p- }: j; O手动使能发送中断就会触发下一次发送
7 G$ c' O# J6 O( \5 T
您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-6 21:43 , Processed in 0.047251 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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