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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10256|回复: 9

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
发表于 2016-11-10 21:45:35 | 显示全部楼层 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
- p6 V* N) R  f: K1 G1.。DSP解算出来的数据是存在哪里?! b; h3 D9 h- W3 R- m2 M3 G4 @
2.。在例程中有这段代码:- N$ S7 x4 R4 S5 M, i7 T
unsigned int int_id = 0;
3 _8 J+ \6 F9 D5 g* N+ r9 {7 q
, s! R6 `- _( Y/ |, c  H    // 确定中断源& F# o8 j+ N" C
    int_id = UARTIntStatus(SOC_UART_2_REGS);
7 M. f; N' g5 n8 M) |" c$ A5 N) l5 U" g% X& s! M
    // 清除 UART2 系统中断& ^  H. f& y& S4 j
    IntSystemStatusClear(SYS_INT_UARTINT2);; ~; @3 z4 x* W' x: Z
) G3 K8 ]+ `; C' V; v& R; t5 }
    // 发送中断& v; D; x& |/ _6 W% M
    if(UART_INTID_TX_EMPTY == int_id)& R# J( n# S! k
    {
+ \9 s& J: j( {        if(0 < length); P1 ^9 J& M9 d$ E
        {7 @4 p* x2 D' e# ]5 p% i( K
            // 写一个字节到 THR
1 s7 K+ `/ X# ~4 p7 Y7 k            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);4 [8 ^1 |' L" F- r2 }7 o; g4 X
            length--;
) Z7 u, p5 E. Y/ F# ^6 j% F            count++;
  G/ G# g9 M9 q, i) }$ S        }
, _8 J* q9 i6 b& O1 b        if(0 == length)% L5 ^9 z1 V# g& H! F4 Z
        {1 N# I$ ]3 I& a  l
            // 禁用发送中断
, I8 n; y* t' x3 G: s            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);# _+ i- X2 z! a& [
        }2 M/ S& I. s2 p/ Z/ g7 s5 c
     }
% A9 H& b0 p2 h! _; g8 s我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
发表于 2016-11-11 15:29:40 | 显示全部楼层
1、存在所有可以访问的 RAM 空间都可以' Y& C. `# W: d3 m1 X# r
2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2016-11-11 20:12:47 | 显示全部楼层
@希望缄默 + L' [8 e" ^4 l/ [$ L% p- c# Y3 ^% |+ O
那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2016-11-11 20:23:23 | 显示全部楼层
希望缄默 发表于 2016-11-11 15:29( t! M$ P6 x; p1 i/ [0 W% L3 }
1、存在所有可以访问的 RAM 空间都可以1 ?% \  L$ }- H. o
2、因为每接收一个字节就产生一次中断 ...
" O- I6 s( S7 c) X- y. H  @
那下次中断是怎么触发的呢?+ M) u# T" ]* F: s& P: A
回复 支持 反对

使用道具 举报

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. L( D! O4 j' a2 y" R  S
接收到下一个字节
& P9 Z: j& t0 i: b9 b  F- a; r7 e
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?4 }/ n) p4 q" K% B; S1 ^* @/ d4 D

点评

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
发表于 2016-11-13 21:33:36 | 显示全部楼层
jj909305 发表于 2016-11-12 09:43+ }1 n4 C3 g( K  @$ Y$ r1 g: m
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
, H5 x6 j7 g' N* Z3 ~% t* ?. { ...
6 m$ x& G# S) U. a% N
手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2017-3-6 16:54:55 | 显示全部楼层
Etihad_21 发表于 2017-3-5 22:27
. H  B/ R0 u! Q' y! h你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...

0 R6 ^9 n# N% P# G你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
发表于 2018-3-22 11:43:17 | 显示全部楼层
希望缄默 发表于 2016-11-13 21:338 |( B  f% X; e
手动使能发送中断就会触发下一次发送
; d0 y' f( R9 G4 ]" X7 j5 \* E
您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 02:49 , Processed in 0.044886 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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