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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2804|回复: 9

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

[复制链接]

20

主题

65

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
发表于 2016-11-10 21:45:35 | 显示全部楼层 |阅读模式 |文章模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问1 `8 u- t1 G' g3 K' n# k0 e
1.。DSP解算出来的数据是存在哪里?
* x5 j- m. ]( [+ L2.。在例程中有这段代码:( w9 |" d$ h0 q1 @, F5 H* \7 u% @2 B
unsigned int int_id = 0;/ N5 A  Q# r7 L) n, }( Y

+ O+ ?$ E5 d6 x$ t1 j+ v2 t    // 确定中断源% ]/ D; A4 O0 b6 U
    int_id = UARTIntStatus(SOC_UART_2_REGS);
7 D2 T- N& w4 i; d' c9 Z6 E
9 J; y" Q* g, H$ d: g    // 清除 UART2 系统中断
) Q& D! g. f' G    IntSystemStatusClear(SYS_INT_UARTINT2);* P/ K+ w3 k% ?0 M, a& K) M
/ Z( C5 f- `6 j  O6 r7 L' v
    // 发送中断
7 T7 t: }. S, v. H( m& o% s; ^' m& T( y    if(UART_INTID_TX_EMPTY == int_id)
; I- s" |8 \- d6 h5 `& F    {, C+ C, w. x( s% O2 J
        if(0 < length)
6 S5 F6 n* Q2 w        {
1 h+ q3 m* K& c- c4 I3 j            // 写一个字节到 THR
$ @+ {! i" O$ G/ a            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);3 M: ^( W% ~* Q3 g
            length--;* v7 b$ G6 f: z* _0 R5 ?2 t. }
            count++;
+ W) s7 R3 n2 Y7 E. [1 k        }
1 W7 F0 r* V* D' D$ G; |        if(0 == length)
" \- _- u- \; b. A  D& i        {, k+ b& Q8 d7 d4 Q5 L, `8 U2 |
            // 禁用发送中断
# K7 |3 `& t2 L9 _8 L, E& y            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);
) K' ^- q; g9 ~3 }3 U6 t+ t        }
8 U7 f7 }- Q$ c     }* o3 N9 u6 K- k9 C9 Y1 l: h8 M
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励0 , 目前已有10人回答
最近访问 头像模式 列表模式
回复

使用道具 举报

15

主题

1343

帖子

4532

积分

广州创龙

Rank: 8Rank: 8

积分
4532
发表于 2016-11-11 15:29:40 | 显示全部楼层
1、存在所有可以访问的 RAM 空间都可以
% a& U5 K: M7 {! h6 I; z3 u2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2016-11-11 20:12:47 | 显示全部楼层
@希望缄默
- k8 ~% k$ k! p0 J: b那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2016-11-11 20:23:23 | 显示全部楼层
希望缄默 发表于 2016-11-11 15:29
: O- U: r. h) O4 L, |$ W0 A+ x1、存在所有可以访问的 RAM 空间都可以: A( H1 A" K  I6 l9 t
2、因为每接收一个字节就产生一次中断 ...
- i% C7 q8 |% M2 i, V( J* k
那下次中断是怎么触发的呢?
/ t9 g! [" j7 b# r+ Q
回复 支持 反对

使用道具 举报

15

主题

1343

帖子

4532

积分

广州创龙

Rank: 8Rank: 8

积分
4532
发表于 2016-11-12 05:43:15 | 显示全部楼层
接收到下一个字节
回复 支持 反对

使用道具 举报

20

主题

65

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2016-11-12 09:43:49 | 显示全部楼层
希望缄默 发表于 2016-11-12 05:43
2 I$ e' z$ k/ m- W1 w  A接收到下一个字节
5 K5 _0 p; l/ \# |0 G4 J7 h" r
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
' U: ?3 N& h4 z8 u, x* L

点评

手动使能发送中断就会触发下一次发送  详情 回复 发表于 2016-11-13 21:33
回复 支持 反对

使用道具 举报

15

主题

1343

帖子

4532

积分

广州创龙

Rank: 8Rank: 8

积分
4532
发表于 2016-11-13 21:33:36 | 显示全部楼层
jj909305 发表于 2016-11-12 09:43% B$ g) c6 m* x: [
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?7 {) n) O0 |5 z. ]
...

6 u$ P; ^; Q. o4 e8 e手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
发表于 2017-3-5 22:27:54 | 显示全部楼层
你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时,接收的数据不知道什么原因出现了连续的FF或者00?希望能够解答,谢啦
* \" U8 I1 L* ~
回复 支持 反对

使用道具 举报

20

主题

65

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2017-3-6 16:54:55 | 显示全部楼层
Etihad_21 发表于 2017-3-5 22:27
& _) O( }2 n- T6 i你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...

) P6 `9 a  m1 }6 a* V* W( I你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
发表于 2018-3-22 11:43:17 | 显示全部楼层
希望缄默 发表于 2016-11-13 21:33% N2 t' U5 W7 B& Z
手动使能发送中断就会触发下一次发送

4 w% E/ ?! v% q3 c1 j8 w您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则  回帖提醒

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

GMT+8, 2019-3-21 13:33 , Processed in 0.162817 second(s), 60 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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