首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HAL_DAC_Stop_DMA和HAL_DAC_Stop的区别是什么?

HAL_DAC_Stop_DMA和HAL_DAC_Stop的区别是什么?
EN

Stack Overflow用户
提问于 2022-04-24 21:56:41
回答 1查看 105关注 0票数 0

我正在通过stmf303re核的DAC运行DMA传输,并且想知道HAL_DAC_Stop_DMA和HAL_DAC_Stop之间是否有区别?我问这个问题是因为在前面的代码中,我只使用了一个HAL_DAC_Stop,它运行得很好,但是我现在看到了也有一个HAL_DAC_Stop_DMA,并且想知道区别是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-25 06:45:32

如果您用DMA启动它,您应该用等效的函数停止它。如果使用非DMA停止功能,则ADC将停止,但DMA仍在运行,等待ADC告诉它更多的数据可用。显然,这将永远不会到来,因此系统处于一个有趣的状态。也许下一个开始函数可以整理这个有趣的状态,或者它不能。如果您想要找到确切的细节,请阅读函数的来源。

另一个不使用DMA停止功能的可能问题是ADC产生的最后一个数据仍然被DMA复制。这意味着您的目标缓冲区还没有准备好供您使用。这是否会导致问题取决于代码读取目标缓冲区的速度。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71992676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档