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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10259|回复: 9

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
发表于 2016-11-10 21:45:35 | 显示全部楼层 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问8 s3 l2 U* g/ s: V( V, V
1.。DSP解算出来的数据是存在哪里?
- X+ v+ J8 w2 {4 H6 `# m2.。在例程中有这段代码:
/ [; {7 F' W8 H0 ] unsigned int int_id = 0;
+ Q; ]- O# V8 }7 j# e8 b* J
4 z7 I& g+ G8 p1 K. M5 T( F    // 确定中断源* X* B! Z. N! r& a( J" e: H
    int_id = UARTIntStatus(SOC_UART_2_REGS);
; h5 X( Y" R2 y! s" b- F
; ~8 t) H  S) e( n) C2 v1 {    // 清除 UART2 系统中断: {9 h9 {& i: _+ }6 q6 r3 n; i
    IntSystemStatusClear(SYS_INT_UARTINT2);8 u& W5 ~4 h  X
, J2 X& t8 D( E
    // 发送中断
( q* L$ {2 t# k/ `. @/ d    if(UART_INTID_TX_EMPTY == int_id)
% F9 a" Q& M& _* s! u9 U% o    {6 F7 ?9 e3 N* A& a& w# b( k3 b
        if(0 < length)
5 [7 U# _+ a/ Y* U  ?; S        {
, _9 s5 j7 q4 r" H7 c1 C- P5 T            // 写一个字节到 THR, g8 |' ?+ z' b0 V
            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);5 n: M% j* k4 d9 o  }  `2 x0 q3 |
            length--;
: |' v, ~6 ?- ?5 _            count++;
/ ^2 ^8 ~. Q: u& E+ L- g6 \        }
; f$ n) E2 M0 {4 e4 o. d/ i/ P        if(0 == length)
0 |! G& W; \+ }5 l; u% m$ _        {
* O8 b' r7 r% l% E            // 禁用发送中断
# E* N) E" Y1 V( q            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);3 x  L1 w, T) b9 L! [; Q# I- L
        }
- J; ?9 d7 ?3 C9 s! g; Y     }( O2 H, d$ i' Z# g' i0 s
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
发表于 2016-11-11 15:29:40 | 显示全部楼层
1、存在所有可以访问的 RAM 空间都可以: v" G! `0 L0 N1 \6 S" L' T
2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2016-11-11 20:12:47 | 显示全部楼层
@希望缄默 6 f1 D* F2 v( Y% H
那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2016-11-11 20:23:23 | 显示全部楼层
希望缄默 发表于 2016-11-11 15:29, v* H8 O) l9 E! u8 P; U1 B* p
1、存在所有可以访问的 RAM 空间都可以8 m$ ~" w) J) X* k3 M* ?7 t6 M9 l  w
2、因为每接收一个字节就产生一次中断 ...

0 O/ T- {! f: b. W5 i: r那下次中断是怎么触发的呢?
5 ?2 y5 h2 t" m) l% ]7 ~' E
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2016-11-12 09:43:49 | 显示全部楼层
希望缄默 发表于 2016-11-12 05:43
; H0 J& U) u# C3 K- c接收到下一个字节

( k1 }' w8 v$ ]0 c- r没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?1 h) L0 q7 E1 |

点评

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
发表于 2016-11-13 21:33:36 | 显示全部楼层
jj909305 发表于 2016-11-12 09:436 v3 T/ B! j* o) o% p. E" {
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
+ A7 W; e; |" e' T: y$ o$ Y7 L$ R ...

2 D/ z6 `; H5 h, L0 s. }手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2017-3-6 16:54:55 | 显示全部楼层
Etihad_21 发表于 2017-3-5 22:277 `  {0 P- F9 \3 u
你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...

& a, G/ C/ x+ N( @) T/ V' O7 X! v你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
发表于 2018-3-22 11:43:17 | 显示全部楼层
希望缄默 发表于 2016-11-13 21:33  d6 l* ~/ K' U7 C
手动使能发送中断就会触发下一次发送

& U: ^' D5 i. K' C您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 17:19 , Processed in 0.045287 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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