chenjunt 发表于 2022-3-6 22:49

采集到的数据不连续

在用stm32F103做ad采集项目,采用内置的ad转换器,使用dma(传输过半,传输完成方式)中断发送数据给STm32的usb模块(使用了环形队列缓存数据),然后在上位机上显示并记录数据。
功能基本都实现了,就是采集到的数据不连续

dingy 发表于 2022-3-6 22:52

有掉数据的情况?

ousj 发表于 2022-3-6 22:54

在上位机上查看数据可以明显看到,本来连续的正弦波会突然不连续了,相位突然就变了,,

dingy 发表于 2022-3-6 22:56

有点怀疑是不是芯片设计问题

heweibig 发表于 2022-3-6 22:59

程序可以公开吗?

chenjunt 发表于 2022-3-6 23:01

程序文件比较多,就不贴出来了,,都是参照官方例程做的。   使用tim触发ad转换,使用dma保存到缓存中,当传输过半,或者传输完成时,触发dma相应中断,在中断中根据是传输过半还是传输完成复制相应数据到环形队列中,并提供数据供usb模块使用。

stly 发表于 2022-3-6 23:04

所有情况都考虑到了?

chenjunt 发表于 2022-3-6 23:06

嗯,但就是出来数据(波形)偶尔会突然跳变。感觉是丢了数据

jlyuan 发表于 2022-3-6 23:11

怀疑芯片从tim触发到dma传输过程中,时序不是严格的

chenjunt 发表于 2022-3-6 23:15


bqyj 发表于 2022-3-6 23:18

你发送一个数据个数过来就能看出迷端.

juventus9554 发表于 2022-3-6 23:21

也有可能是出在usb传输的过程上,你怎么usb的设备.

huangchui 发表于 2022-3-6 23:23

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

chenjunt 发表于 2022-3-6 23:27

usb驱动采用官方的virtualcom 修改而成,采用双缓冲方式。。

yszong 发表于 2022-3-6 23:29

我也碰一了类似楼主这种情况,有出现下图数据不连续的问题.一直没找到原因.求大神指点,现在一点儿头绪都没有!

jlyuan 发表于 2022-3-6 23:31

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

llljh 发表于 2022-3-6 23:34


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

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

dingy 发表于 2022-3-6 23:37

DMA 的速率太快

zwll 发表于 2022-3-6 23:40

问题很有可能出现在USB上传数据的过程中。

wyjie 发表于 2022-3-6 23:44

定时器触发ADC, DMA传输ADC结果. 中断将数据写到发送缓冲. 是这个流程吧.
页: [1] 2
查看完整版本: 采集到的数据不连续