OpenEdv-开源电子网

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

关于ADC多通道数据采集与串口发送的问题

[复制链接]

43

主题

87

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-9-16
在线时间
41 小时
发表于 2019-3-20 21:09:45 | 显示全部楼层 |阅读模式
1金钱
stm32F407的AD480周期转换速度是23.4us大概,采用DMA的方式对3三个通道进行采集,再串口发送给上位机,串口波特率115200,这么算下来串口的传输速度好像跟不上AD的转换速度呀,那岂不是迟早会造成数据丢失?有没有解决办法呢?

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

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2019-3-20 22:29:25 | 显示全部楼层
回复

使用道具 举报

3

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2017-3-28
在线时间
29 小时
发表于 2019-3-21 11:18:29 | 显示全部楼层
按你给的几个数值来看,有两种办法。第一种就是提高波特率,但我估计还是不行。第二种就是先存起来,无论SRAM还是FLASH,然后再统一将数据读取出来。
回复

使用道具 举报

17

主题

119

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
466
金钱
466
注册时间
2018-4-26
在线时间
78 小时
发表于 2019-3-21 15:44:05 | 显示全部楼层
如果数据很多的话,我觉得你可以将数据采集之后存到ram里面或者flash的一块区域,然后处理之后在通过串口发送给上位机
回复

使用道具 举报

43

主题

87

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-9-16
在线时间
41 小时
 楼主| 发表于 2019-3-22 20:39:48 | 显示全部楼层
关山难越 发表于 2019-3-21 15:44
如果数据很多的话,我觉得你可以将数据采集之后存到ram里面或者flash的一块区域,然后处理之后在通过串口发 ...

如果数据采集持续很久呢?你的意思是在ADC中断期间把数据搬运至一块内存区域存储起来,然后再发送?
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-3-22 23:32:57 | 显示全部楼层
想多了吧, 别说三通道了, 就是传一个通道用115200也差很远呢。
用115200传16bit的时间,  T=20/115200 = 173.6us
回复

使用道具 举报

43

主题

87

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-9-16
在线时间
41 小时
 楼主| 发表于 2019-3-25 11:05:57 | 显示全部楼层
edmund1234 发表于 2019-3-22 23:32
想多了吧, 别说三通道了, 就是传一个通道用115200也差很远呢。
用115200传16bit的时间,  T=20/115200 =  ...

那怎么办呢,降低ADC的转换频率?
回复

使用道具 举报

43

主题

87

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-9-16
在线时间
41 小时
 楼主| 发表于 2019-3-25 11:06:21 | 显示全部楼层
edmund1234 发表于 2019-3-22 23:32
想多了吧, 别说三通道了, 就是传一个通道用115200也差很远呢。
用115200传16bit的时间,  T=20/115200 =  ...

不懂USB通信...USB通信似乎很复杂
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-3-25 13:23:18 | 显示全部楼层
fengruixin1992 发表于 2019-3-25 11:06
不懂USB通信...USB通信似乎很复杂

你还真别说, 用USB的模拟串口, 速度是够有余了
不难用的, 安装个cubeMX(官网有的下载), 网上有很多例程, 教你如何创建一USB模拟串口(VCP)的。
回复

使用道具 举报

43

主题

87

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-9-16
在线时间
41 小时
 楼主| 发表于 2019-3-25 15:39:08 | 显示全部楼层
edmund1234 发表于 2019-3-25 13:23
你还真别说, 用USB的模拟串口, 速度是够有余了
不难用的, 安装个cubeMX(官网有的下载), 网上有很 ...

关键是我还得编写上位机,数据是要传给上位机进行处理的。。。
回复

使用道具 举报

43

主题

87

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-9-16
在线时间
41 小时
 楼主| 发表于 2019-3-25 15:41:25 | 显示全部楼层
edmund1234 发表于 2019-3-25 13:23
你还真别说, 用USB的模拟串口, 速度是够有余了
不难用的, 安装个cubeMX(官网有的下载), 网上有很 ...

你说的这个方法,我的硬件应该也得跟着变吧
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-3-25 16:19:21 | 显示全部楼层
fengruixin1992 发表于 2019-3-25 15:41
你说的这个方法,我的硬件应该也得跟着变吧

你用usart跟用模拟串口的上位机是一样的
那当然啊,要改的话接的是USB, 当然要改了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 13:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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