[STM32F1]

stm32 ad dma采集的数据不连续 (求助高手)

[复制链接]
2615|11
手机看帖
扫描二维码
随时随地手机跟帖
tianxia12345|  楼主 | 2018-5-24 16:50 | 显示全部楼层 |阅读模式
在用stm32F103做ad采集项目,采用内置的ad转换器,使用dma(传输过半,传输完成方式)中断发送数据给STm32的usb模块(使用了环形队列缓存数据),然后在上位机上显示并记录数据。
功能基本都实现了,就是采集到的数据不连续,有掉数据的情况。在上位机上查看数据可以明显看到,本来连续的正弦波会突然不连续了,相位突然就变了,,
tianxia12345|  楼主 | 2018-5-24 17:04 | 显示全部楼层
求高手指导,,到底是什么原因。。
就这个问题折腾了几天了,有点怀疑是不是芯片设计问题。
由于程序文件比较多,就不贴出来了,,都是参照官方例程做的。   使用tim触发ad转换,使用dma保存到缓存中,当传输过半,或者传输完成时,触发dma相应中断,在中断中根据是传输过半还是传输完成复制相应数据到环形队列中,并提供数据供usb模块使用。     
感觉所有情况都考虑到了,但就是出来数据(波形)偶尔会突然跳变。感觉是丢了数据,
怀疑芯片从tim触发到dma传输过程中,时序不是严格的,可能导致数据丢失的可能。。
大家有没有遇到这种情况呀,,请高手指导下。  谢谢

使用特权

评论回复
tianxia12345|  楼主 | 2018-5-24 17:04 | 显示全部楼层
不知道如何发图。。。

使用特权

评论回复
tianxia12345|  楼主 | 2018-5-24 17:07 | 显示全部楼层
试试,看能不能发图

boxing.bmp

使用特权

评论回复
huzi2099| | 2018-5-24 17:09 | 显示全部楼层
你发送一个数据个数过来就能看出迷端.
也有可能是出在usb传输的过程上,你怎么usb的设备.

使用特权

评论回复
xuanhuanzi| | 2018-5-24 18:16 | 显示全部楼层
不懂,永固oADC的FIFO没出过这个错。

使用特权

评论回复
tianxia12345|  楼主 | 2018-5-24 18:49 | 显示全部楼层
usb驱动采用官方的virtualcom 修改而成,采用双缓冲方式。。  谢谢前面的恢复

使用特权

评论回复
byrin| | 2018-8-7 14:32 | 显示全部楼层
我也碰一了类似楼主这种情况,有出现下图数据不连续的问题.一直没找到原因.求大神指点,现在一点儿头绪都没有!
36115b693c89679a2.png

使用特权

评论回复
kingkits| | 2018-8-9 17:18 | 显示全部楼层
有可能是USB的通讯造成的数据溢出

使用特权

评论回复
wangjiahao88| | 2018-8-9 17:23 | 显示全部楼层
使用到了 模拟开关切换了吗?

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

使用特权

评论回复
wangjiahao88| | 2018-8-9 17:23 | 显示全部楼层
DMA 的速率太快

使用特权

评论回复
caoenq| | 2018-8-9 20:34 | 显示全部楼层
问题很有可能出现在USB上传数据的过程中。

使用特权

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

本版积分规则

1

主题

9

帖子

1

粉丝