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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2594|回复: 9

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

[复制链接]

20

主题

65

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
发表于 2016-11-10 21:45:35 | 显示全部楼层 |阅读模式 |文章模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问" X  h, A! r6 Z
1.。DSP解算出来的数据是存在哪里?
/ a/ F2 F8 H9 Q0 W" j- Q2 @2.。在例程中有这段代码:
* y" _; c) T4 C/ d- [6 `, p unsigned int int_id = 0;" S0 D2 Z" _0 D( E

2 V, R$ S, a, ^    // 确定中断源. J- T- E. Q' o& r$ E* r6 b
    int_id = UARTIntStatus(SOC_UART_2_REGS);
$ K+ y- h2 z/ V9 B& ~
% q7 ?: T2 F) l3 @, B    // 清除 UART2 系统中断4 s8 c: m' i) ~0 [9 @8 l
    IntSystemStatusClear(SYS_INT_UARTINT2);
0 g4 u$ i& l/ f8 q1 U7 s. Q# b% g1 q
    // 发送中断
9 Y# V( c; P' f: f1 P" s5 d    if(UART_INTID_TX_EMPTY == int_id)* P7 ], N" V2 N! g: `5 h
    {/ Z( a& H0 a& k# d# P% i3 _; S4 V
        if(0 < length)
% U( u/ ?( K% x2 \' J: k* [8 w        {
3 [5 i5 m( @& {' m0 d5 e; n1 K            // 写一个字节到 THR
9 J% o: C3 i1 }            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
7 k# ~+ k: ~8 [            length--;) n: M# B3 x  o4 g3 t; Y, S
            count++;
, X; M- C, K1 a8 o9 O& Z        }
4 V9 k3 _! \$ ~. K* b% ?        if(0 == length)
% Q) D5 K9 W6 @        {2 L/ l7 s. @; j& }
            // 禁用发送中断
. ?6 R5 }) B. Y& ~2 u3 J            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);# G0 M- G% s' T" ^: g1 l
        }! G0 ?* h1 h: G- x
     }
8 b* p# e7 v! V# t+ b( L我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励0 , 目前已有10人回答
最近访问 头像模式 列表模式
回复

使用道具 举报

15

主题

1343

帖子

4532

积分

广州创龙

Rank: 8Rank: 8

积分
4532
发表于 2016-11-11 15:29:40 | 显示全部楼层
1、存在所有可以访问的 RAM 空间都可以
1 J) A) V, h$ K" R6 N2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2016-11-11 20:12:47 | 显示全部楼层
@希望缄默 % ]3 q5 @& R2 Y, k# U" W3 Z
那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2016-11-11 20:23:23 | 显示全部楼层
希望缄默 发表于 2016-11-11 15:29
5 o$ o7 U8 Z% ?7 {1、存在所有可以访问的 RAM 空间都可以( y4 w$ J0 H$ O5 l  M+ u& k: P/ l
2、因为每接收一个字节就产生一次中断 ...
! X# e' W2 R$ v# J
那下次中断是怎么触发的呢?- i5 n# N; M) L  ^+ y2 M" h6 e( P
回复 支持 反对

使用道具 举报

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' }! j6 Z) i* ^  J% f
接收到下一个字节
# X. O2 ]2 ], P3 t3 s6 j
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?  t( x* \0 V8 Q9 S, b1 _

点评

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

使用道具 举报

15

主题

1343

帖子

4532

积分

广州创龙

Rank: 8Rank: 8

积分
4532
发表于 2016-11-13 21:33:36 | 显示全部楼层
jj909305 发表于 2016-11-12 09:43
* z$ |3 i/ \! V* J+ c, ]没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
& o2 ~0 D$ y. `* t& ]- H' V( f: i, C ...
" f! b+ M1 e7 K3 y& w+ D
手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
发表于 2017-3-5 22:27:54 | 显示全部楼层
你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时,接收的数据不知道什么原因出现了连续的FF或者00?希望能够解答,谢啦
0 G4 e1 ?4 P! l6 U7 O! c" I; G+ r
回复 支持 反对

使用道具 举报

20

主题

65

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2017-3-6 16:54:55 | 显示全部楼层
Etihad_21 发表于 2017-3-5 22:27
- N5 m- D( f7 U( e" j& e$ R) e你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...

! t$ q; y' \( s* x$ D你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
发表于 2018-3-22 11:43:17 | 显示全部楼层
希望缄默 发表于 2016-11-13 21:33  G9 J9 n. K7 Y+ j: t7 ?2 u/ J+ m/ o3 }
手动使能发送中断就会触发下一次发送

# W( w7 b! [/ @9 X. H您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则  回帖提醒

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

GMT+8, 2019-2-18 19:17 , Processed in 0.311953 second(s), 60 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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