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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10444|回复: 9

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
发表于 2016-11-10 21:45:35 | 显示全部楼层 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问
& M: Y/ k0 C; J0 }% _4 K1.。DSP解算出来的数据是存在哪里?
$ x1 V/ G2 M! X1 l) F2.。在例程中有这段代码:
9 e) b6 U$ n; s- u# V- ], e unsigned int int_id = 0;
0 R7 f; _/ c2 i% I2 H$ r
$ ]' K/ @/ Q  Y, X    // 确定中断源
" I0 x& O+ E9 d2 a# h    int_id = UARTIntStatus(SOC_UART_2_REGS);
5 s; s! O9 C2 F; h: k2 L$ I- p- o! @8 a; H6 [1 e
    // 清除 UART2 系统中断
7 D; R! n0 W4 P& _    IntSystemStatusClear(SYS_INT_UARTINT2);
# t0 k2 E8 _0 c) t% V1 w
3 y. d% [: `, v    // 发送中断4 t3 |8 S: L8 h' Z  C$ X
    if(UART_INTID_TX_EMPTY == int_id); ^" m& t/ X) {( M  h
    {
% {' ]3 M  v- d        if(0 < length)
$ ]6 {0 H  k2 q5 y0 L. ?' F  i3 k        {- L6 d/ G1 {7 R- {8 @0 D+ x
            // 写一个字节到 THR
. J1 k# p7 D! ~% Z            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);1 M4 `1 Z7 N/ q+ S- {
            length--;3 C+ q+ G9 w/ O4 Q' r
            count++;
! x/ d- d  u' ?& s- F( t! M# G1 d        }
! d, j4 ^! T4 p5 R2 k0 A$ X        if(0 == length)
4 @) l2 H' \% Z$ w6 [4 K        {
8 S/ N. }7 r' @% O, m            // 禁用发送中断; ?( J% w3 o+ D1 s3 Z
            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);* [1 s6 Q5 a3 d& x6 Y0 m- M
        }
$ [: d2 R' B3 X     }
7 a% L# T& c. O4 P5 A, V% @我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
发表于 2016-11-11 15:29:40 | 显示全部楼层
1、存在所有可以访问的 RAM 空间都可以$ x6 x* ?; }0 ?$ Y% C6 h
2、因为每接收一个字节就产生一次中断
回复 支持 1 反对 0

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2016-11-11 20:12:47 | 显示全部楼层
@希望缄默 ) s$ h  b  V. ]) n4 }& i
那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2016-11-11 20:23:23 | 显示全部楼层
希望缄默 发表于 2016-11-11 15:29# z7 Z4 x, O) \% [3 p4 n( n* T5 \
1、存在所有可以访问的 RAM 空间都可以
5 X% ], {$ S6 X. x. ^$ M. f0 J5 }# c- w2、因为每接收一个字节就产生一次中断 ...

& L/ G% U) N, W/ n/ c那下次中断是怎么触发的呢?6 F. _1 J) l' \4 g+ H+ k  N5 X+ D
回复 支持 反对

使用道具 举报

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
! C5 B; [8 j" S/ S1 _8 V接收到下一个字节
: b, _  k! ~& c0 I) K3 [
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
; E: w* q( N6 w! P3 j7 V5 y

点评

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
发表于 2016-11-13 21:33:36 | 显示全部楼层
jj909305 发表于 2016-11-12 09:43
5 K. r0 H; j* ]+ [没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?
" T2 Q  }: Z$ Q3 t ...

8 F9 C% v; Y% _手动使能发送中断就会触发下一次发送
回复 支持 反对

使用道具 举报

1

主题

2

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
 楼主| 发表于 2017-3-6 16:54:55 | 显示全部楼层
Etihad_21 发表于 2017-3-5 22:27# }" j- p" j+ M# e8 I$ m6 O( `* X
你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...

% K5 C# Y5 @; y2 J/ m( {) n你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
发表于 2018-3-22 11:43:17 | 显示全部楼层
希望缄默 发表于 2016-11-13 21:33, V! ~! \' z; F) K$ e* b' ~
手动使能发送中断就会触发下一次发送
& ^! M3 ?* Q# x$ M/ ]
您好,我想问一下如何手动使能发送中断?

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 22:49 , Processed in 0.044885 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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