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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
跳转到指定楼层
楼主
发表于 2016-11-10 21:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问2 x! V, v" @5 l$ l2 o
1.。DSP解算出来的数据是存在哪里?9 y7 T" \6 H+ l  B, L5 u( N8 K2 k
2.。在例程中有这段代码:
( U7 y# {/ j$ s7 ~6 V" v unsigned int int_id = 0;
9 W6 ^4 t9 L7 h; @" s. R, b* ?% P
+ J4 P/ j) D9 i    // 确定中断源
8 e" ?* ~" ~, D    int_id = UARTIntStatus(SOC_UART_2_REGS);# a3 V; A! f6 t" U

8 P, ?: x! z7 b    // 清除 UART2 系统中断
7 e9 P  i, {/ n2 H! e    IntSystemStatusClear(SYS_INT_UARTINT2);& P  f( W9 ?& d3 S/ }2 h' V

3 c, e  V* K$ g, `/ E! Q; R/ b    // 发送中断. T/ a8 q; y0 W+ z7 Q: X4 [
    if(UART_INTID_TX_EMPTY == int_id)* v' _2 O1 m5 o, s
    {: {! @/ Z- c' _5 s- ~5 v( k  T
        if(0 < length)$ B; J, D, l% X0 t  b
        {/ q  {  N  ?. Y2 f4 Y6 {5 h; g' C4 m5 f
            // 写一个字节到 THR  |8 t% G2 w$ \4 O: I) r
            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);. B5 N$ U3 q5 }
            length--;$ M) l$ r4 a; ]7 b6 E. \5 d: w- B
            count++;' }5 u6 [5 k; h
        }
* L1 S3 y. a( u6 a8 {        if(0 == length)
  v. m  ~3 A; R8 a0 _* t7 x: P; b        {
( ~# `1 k% O# h5 \8 w            // 禁用发送中断
, c; q; Z: H  F# j5 W, o            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
0 u$ @  H; X6 Y3 W. R  c3 G0 `        }6 z$ E8 p" P* P5 j! K
     }
5 j; E3 q7 A! J3 b0 j; c2 \我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
推荐
发表于 2016-11-11 15:29:40 | 只看该作者
1、存在所有可以访问的 RAM 空间都可以
" }# H; _! ]: ]; K+ [8 u2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
板凳
 楼主| 发表于 2016-11-11 20:12:47 | 只看该作者
@希望缄默
: ~" \8 k/ Z$ M$ X0 ?- D4 {7 H2 o那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
地板
 楼主| 发表于 2016-11-11 20:23:23 | 只看该作者
希望缄默 发表于 2016-11-11 15:29
/ G! ?2 n/ |. X0 k- T7 }+ _! T0 k" Y1、存在所有可以访问的 RAM 空间都可以
# I1 {2 t; L, ~6 \' _2、因为每接收一个字节就产生一次中断 ...
& Q7 l' ]+ Q) E- P8 M9 M, Z
那下次中断是怎么触发的呢?( Q, S" R( V8 G6 u9 u- u7 R
回复 支持 反对

使用道具 举报

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' S7 a% N% }! |3 w接收到下一个字节

7 J# v, `$ j$ D5 n' K; p没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?, P) r/ ^1 C8 U6 L+ m) v

点评

手动使能发送中断就会触发下一次发送  详情 回复 发表于 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
# ?) z2 L. M2 s/ l5 B9 D9 B没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
' I' A+ n6 z) s' s3 [  b ...

' Y2 b/ K* {9 F2 I" j- k手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
9#
 楼主| 发表于 2017-3-6 16:54:55 | 只看该作者
Etihad_21 发表于 2017-3-5 22:27" j1 m8 k. j3 b( D% B
你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...
0 B- f( L5 `' n9 s
你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
10#
发表于 2018-3-22 11:43:17 | 只看该作者
希望缄默 发表于 2016-11-13 21:33
0 l  ^+ e) V2 G- H9 ~! S. I手动使能发送中断就会触发下一次发送

2 u! G! s7 V2 R  n8 C您好,我想问一下如何手动使能发送中断?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 09:42 , Processed in 0.049296 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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