你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Nucleo-H743ZI ADC DMA传输问题

[复制链接]
bmxx 提问时间:2019-5-13 09:56 /
在研究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的整数倍,则波形就是乱的。

没整明白是啥原因,请论坛里的大神赐教~
收藏 评论6 发布时间:2019-5-13 09:56

举报

6个回答
wenyangzeng 回答时间:2019-5-13 10:05:28
本帖最后由 wenyangzeng 于 2019-5-13 10:06 编辑

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

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

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的第一点像素上一样。也即同步很重要。
疯de_恒 回答时间:2019-5-13 10:45:48
根据香农定理,采样频率至少需要2倍以上波形的频率,如果要高度还原波形,估计要10倍采样频率以上。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

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循环传输时,后面的 ...

确实有这个可能

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版