打印
[应用相关]

ADC采样和数据处理能否真正实现并行?

[复制链接]
285|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
突然下起雨|  楼主 | 2024-8-31 23:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ADC采样过程中,CPU是否会被占用?如何确保采样和数据处理可以并行运行而不相互干扰?

使用特权

评论回复
沙发
wanduzi| | 2024-9-2 21:48 | 只看该作者
使用普通模式(Polling模式)时:

在Polling模式下,CPU会等待ADC转换完成,这期间CPU被阻塞,无法执行其他任务。此模式不适合高实时性或多任务系统,因为它会占用CPU资源。
调用HAL_ADC_PollForConversion函数时,CPU会等待ADC转换完成,这期间不能执行其他任务。
使用中断模式时:

在中断模式下,CPU只会在ADC转换完成时被中断,中断处理完成后CPU继续执行其他任务。此模式比Polling模式更高效,因为CPU在等待ADC完成时可以处理其他任务。
使用DMA模式时:

DMA模式是最优的,因为它完全解放了CPU资源。在ADC采样过程中,DMA控制器直接将转换结果传输到内存,而不需要CPU干预。只有在DMA传输完成时,CPU才会收到中断通知,以处理采样到的数据。

使用特权

评论回复
板凳
wanduzi| | 2024-9-2 21:49 | 只看该作者
事实上采样的时候,是不影响你处理的,所以我觉得没必要担心。ADC采样是一个充电的过程,由ADC模块在时钟节拍下自动完成。

使用特权

评论回复
地板
呐咯密密| | 2024-9-3 10:43 | 只看该作者
用DMA,释放CPU的资源

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

276

帖子

1

粉丝