采集到的数据不连续
在用stm32F103做ad采集项目,采用内置的ad转换器,使用dma(传输过半,传输完成方式)中断发送数据给STm32的usb模块(使用了环形队列缓存数据),然后在上位机上显示并记录数据。功能基本都实现了,就是采集到的数据不连续 有掉数据的情况?
在上位机上查看数据可以明显看到,本来连续的正弦波会突然不连续了,相位突然就变了,,
有点怀疑是不是芯片设计问题
程序可以公开吗?
程序文件比较多,就不贴出来了,,都是参照官方例程做的。 使用tim触发ad转换,使用dma保存到缓存中,当传输过半,或者传输完成时,触发dma相应中断,在中断中根据是传输过半还是传输完成复制相应数据到环形队列中,并提供数据供usb模块使用。 所有情况都考虑到了?
嗯,但就是出来数据(波形)偶尔会突然跳变。感觉是丢了数据
怀疑芯片从tim触发到dma传输过程中,时序不是严格的
你发送一个数据个数过来就能看出迷端.
也有可能是出在usb传输的过程上,你怎么usb的设备.
不懂,永固oADC的FIFO没出过这个错。
usb驱动采用官方的virtualcom 修改而成,采用双缓冲方式。。
我也碰一了类似楼主这种情况,有出现下图数据不连续的问题.一直没找到原因.求大神指点,现在一点儿头绪都没有!
有可能是USB的通讯造成的数据溢出
使用到了 模拟开关切换了吗?
很有可能是 不同步 造成的! DMA 的速率太快
问题很有可能出现在USB上传数据的过程中。
定时器触发ADC, DMA传输ADC结果. 中断将数据写到发送缓冲. 是这个流程吧.
页:
[1]
2