打印
[STM32F1]

采集到的数据不连续

[复制链接]
422|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在用stm32F103做ad采集项目,采用内置的ad转换器,使用dma(传输过半,传输完成方式)中断发送数据给STm32的usb模块(使用了环形队列缓存数据),然后在上位机上显示并记录数据。
功能基本都实现了,就是采集到的数据不连续

使用特权

评论回复
沙发
chenho| | 2020-3-15 13:16 | 只看该作者
有掉数据的情况?

使用特权

评论回复
板凳
chenjunt|  楼主 | 2020-3-15 13:19 | 只看该作者
在上位机上查看数据可以明显看到,本来连续的正弦波会突然不连续了,相位突然就变了,,

使用特权

评论回复
地板
pengf| | 2020-3-15 13:22 | 只看该作者
有点怀疑是不是芯片设计问题

使用特权

评论回复
5
supernan| | 2020-3-15 13:25 | 只看该作者
程序可以公开吗?

使用特权

评论回复
6
chenjunt|  楼主 | 2020-3-15 13:29 | 只看该作者
程序文件比较多,就不贴出来了,,都是参照官方例程做的。   使用tim触发ad转换,使用dma保存到缓存中,当传输过半,或者传输完成时,触发dma相应中断,在中断中根据是传输过半还是传输完成复制相应数据到环形队列中,并提供数据供usb模块使用。     

使用特权

评论回复
7
zyf部长| | 2020-3-15 13:32 | 只看该作者
所有情况都考虑到了?

使用特权

评论回复
8
chenjunt|  楼主 | 2020-3-15 13:36 | 只看该作者
嗯,但就是出来数据(波形)偶尔会突然跳变。感觉是丢了数据

使用特权

评论回复
9
wangpe| | 2020-3-15 13:40 | 只看该作者
怀疑芯片从tim触发到dma传输过程中,时序不是严格的

使用特权

评论回复
10
chenjunt|  楼主 | 2020-3-15 13:43 | 只看该作者

使用特权

评论回复
11
bqyj| | 2020-3-15 13:46 | 只看该作者
你发送一个数据个数过来就能看出迷端.

使用特权

评论回复
12
juventus9554| | 2020-3-15 13:58 | 只看该作者
也有可能是出在usb传输的过程上,你怎么usb的设备.

使用特权

评论回复
13
llljh| | 2020-3-15 14:01 | 只看该作者

不懂,永固oADC的FIFO没出过这个错。

使用特权

评论回复
14
chenjunt|  楼主 | 2020-3-15 14:09 | 只看该作者
usb驱动采用官方的virtualcom 修改而成,采用双缓冲方式。。

使用特权

评论回复
15
yinxiangh| | 2020-3-15 14:14 | 只看该作者
我也碰一了类似楼主这种情况,有出现下图数据不连续的问题.一直没找到原因.求大神指点,现在一点儿头绪都没有!

使用特权

评论回复
16
xxmmi| | 2020-3-15 14:17 | 只看该作者

有可能是USB的通讯造成的数据溢出

使用特权

评论回复
17
langgq| | 2020-3-15 14:19 | 只看该作者

使用到了 模拟开关切换了吗?

很有可能是 不同步 造成的!

使用特权

评论回复
18
zhanglli| | 2020-3-15 14:22 | 只看该作者
DMA 的速率太快

使用特权

评论回复
19
zhuhuis| | 2020-3-15 14:25 | 只看该作者
问题很有可能出现在USB上传数据的过程中。

使用特权

评论回复
20
chenjunt|  楼主 | 2020-3-15 14:29 | 只看该作者

明白了,多谢大家讨论这么多哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

7868

帖子

5

粉丝