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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10535|回复: 9
打印 上一主题 下一主题

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

[复制链接]

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
跳转到指定楼层
楼主
发表于 2016-11-10 21:45:35 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
现在用138芯片搭一个导航平台,DSP用于导航解算,ARM用于通过UART2与PC通信。想问; M+ b: p( S( C' T
1.。DSP解算出来的数据是存在哪里?
: j9 t) y6 X) `, v1 n1 r7 g5 P2.。在例程中有这段代码:
2 @+ g0 x+ R9 E+ G8 v3 p4 ` unsigned int int_id = 0;
' i% {% N& o/ z( W* N0 [6 _. h1 v8 |" ]: h- o4 x: f' l4 `  n: e
    // 确定中断源
. n) t# U7 k- C4 |, p    int_id = UARTIntStatus(SOC_UART_2_REGS);+ r% s, N4 E* a1 ^# P9 c

* H% D" o0 |! I' z: R" E& N    // 清除 UART2 系统中断) e* k: {( ^8 M2 u
    IntSystemStatusClear(SYS_INT_UARTINT2);
& _" {- F- \1 X/ s, ]5 V
; ^- u4 b# P5 B2 s/ T    // 发送中断
& B0 b8 b+ T$ u: n3 a/ \( K0 f5 Z    if(UART_INTID_TX_EMPTY == int_id)
3 c. p2 ^, y, C. e  H8 L- _: {    {
' s/ R; V4 r: ]. ^        if(0 < length)! m4 _5 ~! X; U- l
        {
) p/ A% p! g7 b            // 写一个字节到 THR
7 s# k3 e1 m7 Y            UARTCharPutNonBlocking(SOC_UART_2_REGS, txArray[count]);& P1 H7 f$ @  a3 Q' z& r
            length--;. T* Q& {9 P' T) i  {8 X. {
            count++;- T- V& j4 E8 X0 `9 O
        }; a$ T+ M' x& K
        if(0 == length)4 m) F: b* T/ y
        {
' y5 H3 n- B4 U0 P# v$ I            // 禁用发送中断* T5 A/ r! l" k2 r
            UARTIntDisable(SOC_UART_2_REGS, UART_INT_TX_EMPTY);9 q9 Y2 ]% t2 m$ A5 D
        }
; D; W7 ?& I" k8 y3 U- E6 g+ ]     }
0 s: y; Q7 t) K我的问题是这里为什么用if不用for??另外这个UART中断是怎么触发的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
沙发
 楼主| 发表于 2016-11-11 20:12:47 | 显示全部楼层
@希望缄默 # ~( }$ d8 h  J/ V+ I- _( ~' G
那下次中断是怎么触发的呢?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
板凳
 楼主| 发表于 2016-11-11 20:23:23 | 显示全部楼层
希望缄默 发表于 2016-11-11 15:29
- H8 I: L% t! J; U% P1、存在所有可以访问的 RAM 空间都可以
& B( N1 M2 v# W. |3 H1 v, @* b2、因为每接收一个字节就产生一次中断 ...

( c; y8 w4 B" V" j  K& N% P+ m那下次中断是怎么触发的呢?
" T9 ]  N+ I0 \' `0 a! \% {/ B
回复 支持 反对

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
地板
 楼主| 发表于 2016-11-12 09:43:49 | 显示全部楼层
希望缄默 发表于 2016-11-12 05:43
4 X( j4 I/ N9 {  i! X! |1 \接收到下一个字节
  {- R2 S1 g2 h6 j* U: f7 |
没懂啥意思。。我的意思是发送一个字节后下次中断是如何触发的?在软件里哪里有体现还是硬件来完成的?7 o! ?  Z1 r5 \% h

点评

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

使用道具 举报

20

主题

65

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
5#
 楼主| 发表于 2017-3-6 16:54:55 | 显示全部楼层
Etihad_21 发表于 2017-3-5 22:27
, B  D% x* ?! y你好,想问你个问题,你有没有用串口实时接收过数据呢?我在实现NovAtel接收机实时通过串口传输数据到DSP时 ...
8 J+ y: Q5 `5 Y! X
你好。。我后来不搞这块了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 11:51 , Processed in 0.038678 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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