原帖 | Jack | 2024-10-02 12:52 | 👍0 | 阅读约1
老师,请问ADC中如果连续装换模式和单次转换模式都失能,会发生什么呢?
同学,ADC 将在每个触发事件(比如调用HAL_ADC_Start()来启动)下仅执行一次转换,然后停止,需要新的触发事件才能启动下一次转换,这种一般用于需要精确控制转换时机的场景,你比如一些信号有一些建立时间,需要在特定时间点采样才是精准的。
另外,解释一下这两个参数的含义:
第一个Continuous Conversion Mode(连续转换模式)是控制:是否持续的对某一个通道不停地转换,你会在DR里面一直看到数据更新,EOC标志位一直会产生。于是你可以通过轮询或者中断的方式一直来取ADC的数据。
第二个Discontinuous Conversion Mode(非连续转换模式)是控制:是否ADC 将进入 非连续转换模式(Discontinuous Conversion Mode),在 非连续转换模式下,ADC 会将配置的通道序列分成若干个小组,每个小组的大小由 Discontinuous Number(非连续数目)参数确定,范围是 1 到 8。ADC 会在每个触发事件(软件或硬件触发)下,仅转换一个小组的通道,然后停止,等待下一个触发事件。每次非连续转换都需要新的触发事件。这种模式适用于需要在多个触发事件下分批次采样的情况。例如,在实时控制系统中,可能希望在每个控制周期内只采样部分通道(而不是 全部通道),以减少CPU负担。
比如说,如果你配置了 6 个通道的序列,且将 Discontinuous Number 设置为 2,那么 ADC 会将这 6 个通道分成 3 组,每组 2 个通道。每次触发事件会启动一组(2 个通道)的转换,需要 3 次触发事件才能完成所有通道的转换。

相关笔记