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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10253|回复: 9

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
发表于 2016-11-10 21:45:35 | 显示全部楼层 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
8 [: p* P& S  Z5 [+ ]1.。DSP解算出来的数据是存在哪里?, d) O$ x+ n5 ~
2.。在例程中有这段代码:( p- [) Y; F! U
unsigned int int_id = 0;
! u" p3 [& r) Z. c- Z
" k, A' u1 j- h    // 确定中断源
  |$ P5 H+ {3 q3 m0 j+ m    int_id = UARTIntStatus(SOC_UART_2_REGS);
( o2 Q, l. N2 W: W6 k* m
  d& v% ?8 u+ T& D. I' E' Q  h0 q: m    // 清除 UART2 系统中断
, U3 g7 N/ Q: {2 s& \: I    IntSystemStatusClear(SYS_INT_UARTINT2);
7 F! p, O! i. C: f. S. F7 o, p$ _0 J8 B+ j0 c. A$ X( [
    // 发送中断- X# B' l. ?7 _6 n1 ?, c
    if(UART_INTID_TX_EMPTY == int_id); x8 y" G6 o6 I9 D
    {
2 W8 U( m$ k& I0 @0 s. ^$ i* n        if(0 < length)& m+ E# J5 |) f% }8 b5 [1 P* ~% e
        {
7 m" W1 H; y& I$ d" A2 f            // 写一个字节到 THR9 y. A3 [5 g0 b/ f7 V, s
            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);
( w! [5 g* {6 U+ C. ~" n& k            length--;# p: ^# h4 J+ D/ J2 p& q
            count++;5 y7 x- q( l* K% }
        }
* T9 E0 L6 D8 E$ D, d. s3 @# l3 x        if(0 == length)- K5 `! z, D2 X: B/ C* B) E
        {
- A. ^7 Z; Y. y" s% `: V, a  f8 ^. H            // 禁用发送中断8 @8 ?* _! H# K% E
            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);* ^) E; s4 r! M6 C
        }
! D' w" u  Q7 I/ s; E" {0 ]6 Y     }& M! B' `4 f9 X
我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
发表于 2016-11-11 15:29:40 | 显示全部楼层
1、存在所有可以访问的 RAM 空间都可以* i, Y9 l7 c5 {  D' A/ z
2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2016-11-11 20:12:47 | 显示全部楼层
@希望缄默 , r5 j$ o' v% V6 i
那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2016-11-11 20:23:23 | 显示全部楼层
希望缄默 发表于 2016-11-11 15:29. _8 ~7 j5 z+ }# O( q
1、存在所有可以访问的 RAM 空间都可以( v9 ?/ X! j8 q. M5 @5 Y' e1 X0 E
2、因为每接收一个字节就产生一次中断 ...

# m+ y. @( N  f3 \2 b- ~( e( d: R7 k那下次中断是怎么触发的呢?
6 f/ n4 Z. w& _& |% `- O2 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( I% i, A3 m; c; e
接收到下一个字节

& {0 g3 w' E5 B# j4 i/ j& F没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
" ^3 a9 k- Z! ]) n6 L

点评

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
发表于 2016-11-13 21:33:36 | 显示全部楼层
jj909305 发表于 2016-11-12 09:43
6 N/ Z  _0 C+ Y6 R4 [$ Y+ k没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?( ]" R. V8 L' z) S
...

7 N- j4 C' N5 r0 f/ _6 K6 s( A+ [手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2017-3-6 16:54:55 | 显示全部楼层
Etihad_21 发表于 2017-3-5 22:27
5 k  ^; ]* a2 a. h你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...

  m* B6 u8 t0 a( P; M# `) w你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
发表于 2018-3-22 11:43:17 | 显示全部楼层
希望缄默 发表于 2016-11-13 21:33
3 O* J$ t% q9 o+ a3 y! F手动使能发送中断就会触发下一次发送

3 F2 a5 }; O9 [6 y. P1 D* F0 T您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 20:59 , Processed in 0.044744 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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