OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8901|回复: 11

串口收发-DMA与中断-如何选择

[复制链接]

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2022-11-7
在线时间
13 小时
发表于 2022-11-7 14:31:42 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 星辰cc 于 2022-11-7 17:39 编辑

DMA串口收发和直接中断接收,用于接收物联网平台的信息,是0D0A结尾的,信息是突发的,放10ms的中断里处理,哪种比较好?
download.png

最佳答案

查看完整内容[请看2#楼]

使用了DMA也是可以进入空闲中断的。如果没有进入应该是哪里配置错了。 粘在一起可以自己按照协议或者数据特征解析一下。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

131

帖子

0

精华

高级会员

Rank: 4

积分
625
金钱
625
注册时间
2019-3-27
在线时间
147 小时
发表于 2022-11-7 14:31:43 | 显示全部楼层
星辰cc 发表于 2022-11-14 11:15
我使用了DMA,发现进不了空闲中断,数据全在RX_BUFF数组里,粘在一起。有没有办法分开

使用了DMA也是可以进入空闲中断的。如果没有进入应该是哪里配置错了。
粘在一起可以自己按照协议或者数据特征解析一下。
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3359
金钱
3359
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-11-8 14:13:31 | 显示全部楼层
0D0A就是回车符加换行符。当然是DMA好,串口数据直接搬运到RAM,然后再处理。尽量不要在中断里处理
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2022-11-9 01:06:54 | 显示全部楼层
能用DMA就不用频繁中断CPU
回复

使用道具 举报

22

主题

131

帖子

0

精华

高级会员

Rank: 4

积分
625
金钱
625
注册时间
2019-3-27
在线时间
147 小时
发表于 2022-11-9 09:09:38 | 显示全部楼层
可以DMA+空闲中断
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2022-11-7
在线时间
13 小时
 楼主| 发表于 2022-11-14 11:15:09 | 显示全部楼层
正点原子 发表于 2022-11-9 01:06
能用DMA就不用频繁中断CPU

我使用了DMA,发现进不了空闲中断,数据全在RX_BUFF数组里,粘在一起。有没有办法分开
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2022-11-7
在线时间
13 小时
 楼主| 发表于 2022-11-14 11:15:31 | 显示全部楼层

请问,我使用了DMA,发现进不了空闲中断,数据全在RX_BUFF数组里,粘在一起。有没有办法分开
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2022-11-7
在线时间
13 小时
 楼主| 发表于 2022-11-14 11:17:13 | 显示全部楼层
c2007s 发表于 2022-11-8 14:13
0D0A就是回车符加换行符。当然是DMA好,串口数据直接搬运到RAM,然后再处理。尽量不要在中断里处理

你好,我使用了DMA,发现进不了空闲中断,数据全在RX_BUFF数组里,粘在一起。请问大佬有什么好的数据处理方式?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2022-11-15 00:11:04 | 显示全部楼层
DMA+空闲中断
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

70

主题

6756

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12983
金钱
12983
注册时间
2012-11-26
在线时间
3787 小时
发表于 2022-11-15 08:12:09 | 显示全部楼层
DMA+空闲中断   最适合AT指令的处理
学无止境
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3359
金钱
3359
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-11-16 09:06:07 | 显示全部楼层
开空闲中断啊。然后每次进入中断就说明一帧数据到了,停止DMA,赶紧处理数据,处理完了再打开DMA重新收下一帧。对速度要求高的,也可以用双缓存收。
回复

使用道具 举报

32

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
617
金钱
617
注册时间
2013-1-16
在线时间
131 小时
发表于 2022-11-16 10:19:09 | 显示全部楼层
使用DMA好呀!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 23:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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