OpenEdv-开源电子网

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

DMA分配问题。ADC UART都用dma,该给谁用?

[复制链接]

20

主题

200

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2015-11-28
在线时间
89 小时
发表于 2022-4-5 02:08:55 | 显示全部楼层 |阅读模式
10金钱
要做个东西, 需要ADC的 100ms一次的三通道采样,(也可能10ms一次,然后取平均)。
还要做个串口的通信,100ms左右一次。 看外设通道,都在DMA1上,但都是不同的通道。

有几个想法:
1:粗暴一点,串口和ADC都用DMA,这种情况下,DMA用在ADC上大概率就不能短周期大量采集数据了(还是说我小瞧M3单片机了)。因为担心在时间轴上与串口DMA使用发生冲突,需要等待,导致数据疏漏。
2:ADC用DMA,串口用外设IT中断。 串口数据通信量一般,周期100ms一次接发一次。 ADC 采样三通道 几ms一次,我决定要用这套,但是又怕DMA的频繁工作影响cpu的其他任务。
3:ADC用IT外设中断,串口用DMA。 进入中断次数与采样周期相关,相同时间,采的越多,进的中断越多,担心影响cpu其他任务。  少了不能对ADC有效的软件滤波。

经验丰富的各位坛友,请分享一下,相关方面的小技巧和经验。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
123
金钱
123
注册时间
2022-7-17
在线时间
41 小时
发表于 2022-7-28 16:42:00 | 显示全部楼层
我有相同的疑问,等待大佬回答
回复

使用道具 举报

31

主题

1953

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4462
金钱
4462
注册时间
2018-5-11
在线时间
932 小时
发表于 2022-7-28 20:00:48 | 显示全部楼层
个人认为串口没有必要用DMA,
只须用接收中断就可以了。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

3

主题

805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3831
金钱
3831
注册时间
2017-3-7
在线时间
1671 小时
发表于 2022-7-29 08:13:00 | 显示全部楼层
同上,速率慢,数据少的话串口没必要dma
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-8-20
在线时间
4 小时
发表于 2022-11-4 10:27:08 | 显示全部楼层
warship 发表于 2022-7-28 20:00
个人认为串口没有必要用DMA,
只须用接收中断就可以了。

同感,我之前有个项目用的就是串口用DMA 空闲中断,很多问题,后来用回去中断接收了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 22:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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