bmxx 发表于 2019-5-13 09:56:19

Nucleo-H743ZI ADC DMA传输问题

在研究ADC采样,用DMA传输,碰到一个问题,想请教论坛里的大神~

用的是官方例程ADC_DMA_Transfer,假设ADC采样率fs,存储ADC转换数据的buffer大小(ADC_CONVERTED_DATA_BUFFER_SIZE)为L,被采信号的周期为T。程序运行时,我用keil中的save命令将长度为L的ADC数据存储下来,再用matlab将ADC数据绘成波形。


如果L刚好能存储周期T的整数倍时,绘成的波形很完好,但如果L不是周期T的整数倍,则波形就是乱的。

没整明白是啥原因,请论坛里的大神赐教~:loveliness:

wenyangzeng 发表于 2019-5-13 10:05:28

本帖最后由 wenyangzeng 于 2019-5-13 10:06 编辑

楼主当然要等到一个信号周期的DMA传输结束,才能得到完整的波形。所以这个波形的显示时刻应该依据DMA传输结束标志位。

bmxx 发表于 2019-5-13 10:25:30

wenyangzeng 发表于 2019-5-13 10:05
楼主当然要等到一个信号周期的DMA传输结束,才能得到完整的波形。所以这个波形的显示时刻应该依据DMA传输结 ...

不是波形完整与否问题,而是波形都混乱了。理论上,如果L是周期的1.5倍,那应该能绘出1.5个周期的波形吧,但实际出来的波形像是被调制了一样

wenyangzeng 发表于 2019-5-13 10:28:58

bmxx 发表于 2019-5-13 10:25
不是波形完整与否问题,而是波形都混乱了。理论上,如果L是周期的1.5倍,那应该能绘出1.5个周期的波形吧 ...

楼主应该控制波形的起始点和结束点的时刻才能得到正确波形。好比摄像头传输的第一点阵必须显示在LCD的第一点像素上一样。也即同步很重要。

す疯Ⅱ恒す 发表于 2019-5-13 10:45:48

根据香农定理,采样频率至少需要2倍以上波形的频率,如果要高度还原波形,估计要10倍采样频率以上。

bmxx 发表于 2019-5-14 13:46:11

wenyangzeng 发表于 2019-5-13 10:28
楼主应该控制波形的起始点和结束点的时刻才能得到正确波形。好比摄像头传输的第一点阵必须显示在LCD的第 ...

根据你的指导,我后来尝试让DMA传输结束后就终止,得到的波形是好的。
是不是因为DMA循环传输时,后面的数据会覆盖了前面的数据所以造成波形混乱?

wenyangzeng 发表于 2019-5-14 21:30:00

bmxx 发表于 2019-5-14 13:46
根据你的指导,我后来尝试让DMA传输结束后就终止,得到的波形是好的。
是不是因为DMA循环传输时,后面的 ...

确实有这个可能
页: [1]
查看完整版本: Nucleo-H743ZI ADC DMA传输问题